Refactor CenterAlignSqlTableModel.

This commit is contained in:
Krad
2022-06-08 09:57:59 +08:00
parent 68cb18fbf5
commit 9a233251dc
2 changed files with 16 additions and 16 deletions

View File

@@ -3,3 +3,17 @@
//
#include "CenterAlignSqlTableModel.h"
QVariant CenterAlignSqlTableModel::data(const QModelIndex &index, int role) const {
if (index.column() > 0 && role == Qt::TextAlignmentRole) {
return Qt::AlignCenter;
}
if (index.column() > 0 && role == Qt::DisplayRole) {
auto val = QSqlTableModel::data(index, role).toString();
QStringList list = val.split("\n");
if (list.size() > 1)
return QString("%1...").arg(list[0].left(list[0].length() < 20 ? list[0].length() : 20));
return val;
} else {
return QSqlTableModel::data(index, role);
}
}

View File

@@ -10,23 +10,9 @@ class CenterAlignSqlTableModel:public QSqlTableModel {
Q_OBJECT
public:
explicit CenterAlignSqlTableModel(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase()):QSqlTableModel(parent,db){};
~CenterAlignSqlTableModel(){};
~CenterAlignSqlTableModel() override = default;
protected:
QVariant data(const QModelIndex& index, int role) const override {
if (index.column() >0 && role == Qt::TextAlignmentRole) {
return Qt::AlignCenter;
}
if (index.column() >0 && role == Qt::DisplayRole){
auto val = QSqlTableModel::data(index,role).toString();
QStringList list = val.split("\n");
if (list.size()>1)
return QString("%1...").arg(list[0].left(list[0].length()<20?list[0].length():20));
return val;
}
else {
return QSqlTableModel::data(index,role);
}
}
QVariant data(const QModelIndex& index, int role) const override;
};