Swiftray  1.0
machine-settings.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QString>
4 #include <QFile>
5 #include <QJsonObject>
6 #include <QJsonArray>
7 #include <QSettings>
8 #include <QJsonDocument>
9 #include <QPointF>
10 #include <QIcon>
11 #include <QStringList>
12 
13 class MachineSettings : public QObject {
14 Q_OBJECT
15 public:
16  struct MachineSet {
17  enum class OriginType {
18  RearLeft,
19  RearRight,
20  FrontLeft,
22  };
23  enum class BoardType {
24  GRBL_2020,
25  FLUX_2020,
26  M2NANO_7,
28  };
29  public:
30  QString id;
31  QString name;
32  QString brand;
33  QString model;
34  QString icon_url;
35 
38  int width;
39  int height;
42 
43  static MachineSet fromJson(const QJsonObject &obj);
44 
45  QJsonObject toJson() const;
46 
47  QIcon icon() const;
48  };
49 
51 
52  QList<MachineSet> &machines();
53 
54  void save();
55 
56  static MachineSet findPreset(QString brand, QString model);
57 
58  static QList<MachineSet> database();
59 
60  Q_INVOKABLE static QStringList brands();
61 
62  Q_INVOKABLE static QStringList models(QString brand);
63 
64 private:
65  static QList<MachineSet> machineDatabase_;
66 
67  void loadJson(const QJsonObject &obj);
68 
69  QJsonObject toJson();
70 
71  QList<MachineSet> machines_;
72 };
Definition: machine-settings.h:13
QList< MachineSet > & machines()
Definition: machine-settings.cpp:37
MachineSettings()
Definition: machine-settings.cpp:8
void save()
Definition: machine-settings.cpp:41
static Q_INVOKABLE QStringList brands()
Definition: machine-settings.cpp:121
static Q_INVOKABLE QStringList models(QString brand)
Definition: machine-settings.cpp:132
static MachineSet findPreset(QString brand, QString model)
Definition: machine-settings.cpp:112
static QList< MachineSet > database()
Definition: machine-settings.cpp:100
Definition: machine-settings.h:16
QString id
Definition: machine-settings.h:30
QPointF red_pointer_offset
Definition: machine-settings.h:41
BoardType board_type
Definition: machine-settings.h:36
OriginType
Definition: machine-settings.h:17
int height
Definition: machine-settings.h:39
OriginType origin
Definition: machine-settings.h:37
QString icon_url
Definition: machine-settings.h:34
QString model
Definition: machine-settings.h:33
QString brand
Definition: machine-settings.h:32
int width
Definition: machine-settings.h:38
QIcon icon() const
Definition: machine-settings.cpp:46
QString name
Definition: machine-settings.h:31
static MachineSet fromJson(const QJsonObject &obj)
Definition: machine-settings.cpp:60
bool home_on_start
Definition: machine-settings.h:40
QJsonObject toJson() const
Definition: machine-settings.cpp:84
BoardType
Definition: machine-settings.h:23