metaforce/hecl-gui/SysReqTableView.hpp

67 lines
2.3 KiB
C++
Raw Normal View History

2018-10-07 03:41:18 +00:00
#pragma once
#include <QTableView>
#include "VectorISATableView.hpp"
class QSequentialAnimationGroup;
const uint32_t MinBlenderVersionMajor = 2;
const uint32_t MaxBlenderVersionMajor = 2;
const uint32_t MinBlenderVersionMinor = 90;
const uint32_t MaxBlenderVersionMinor = 91;
2018-12-08 05:19:40 +00:00
class SysReqTableModel : public QAbstractTableModel {
Q_OBJECT
uint64_t m_cpuSpeed = 0;
QString m_cpuSpeedStr;
uint64_t m_memorySize = 0;
QString m_memorySizeStr;
qint64 m_freeDiskSpace = 0;
QString m_freeDiskSpaceStr = tr("<Set Working Directory>");
#if __APPLE__
2018-12-08 05:19:40 +00:00
int m_macosMajor = 0;
int m_macosMinor = 0;
int m_macosPatch = 0;
2017-12-27 04:10:44 +00:00
#elif _WIN32
2018-12-08 05:19:40 +00:00
bool m_win7SP1OrGreater = false;
#endif
2018-12-08 05:19:40 +00:00
QString m_osVersion;
int m_blendMajor = 0;
int m_blendMinor = 0;
QString m_blendVersionStr;
public:
2018-12-08 05:19:40 +00:00
SysReqTableModel(QObject* parent = Q_NULLPTR);
2019-08-30 07:40:25 +00:00
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
bool isBlenderVersionOk() const {
return (m_blendMajor >= MinBlenderVersionMajor && m_blendMajor <= MaxBlenderVersionMajor) &&
(m_blendMinor >= MinBlenderVersionMinor && m_blendMinor <= MaxBlenderVersionMinor);
}
2018-12-08 05:19:40 +00:00
void updateFreeDiskSpace(const QString& path);
};
2018-12-08 05:19:40 +00:00
class SysReqTableView : public QTableView {
Q_OBJECT
SysReqTableModel m_model;
VectorISATableView m_vectorISATable;
std::tuple<QWidget*, QSequentialAnimationGroup*, bool> m_backgroundWidgets[6] = {};
public:
2018-12-08 05:19:40 +00:00
SysReqTableView(QWidget* parent = Q_NULLPTR);
2019-08-30 07:40:25 +00:00
void paintEvent(QPaintEvent* e) override;
2018-12-08 05:19:40 +00:00
const SysReqTableModel& getModel() const { return m_model; }
const VectorISATableView& getVectorISATable() const { return m_vectorISATable; }
bool willRun(const URDEVersion& v) const {
2021-02-28 03:56:00 +00:00
return v.getArchitecture() == CurArchitecture && v.getPlatform() == CurPlatform
#if ZEUS_ARCH_X86_64 || ZEUS_ARCH_X86
&& m_vectorISATable.willRun(v.getVectorISA())
#endif
;
2018-12-08 05:19:40 +00:00
}
bool isBlenderVersionOk() const { return m_model.isBlenderVersionOk(); }
void updateFreeDiskSpace(const QString& path) { m_model.updateFreeDiskSpace(path); }
};