AusweisApp2
RemoteDeviceModel.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "GlobalStatus.h"
11 #include "RemoteDeviceDescriptor.h"
12 #include "RemoteDeviceList.h"
13 #include "RemoteDispatcher.h"
14 #include "RemoteServiceSettings.h"
15 
16 #include <QAbstractTableModel>
17 #include <QSet>
18 #include <QSslCertificate>
19 #include <QVector>
20 
22 
23 namespace governikus
24 {
25 
27 {
28  private:
29  friend class ::test_RemoteDeviceModel;
30  QString mDeviceName;
31  QString mId;
32  bool mPaired;
33  bool mNetworkVisible;
34  bool mConnected;
35  bool mSupported;
36  QDateTime mLastConnected;
37  QSharedPointer<RemoteDeviceListEntry> mRemoteDeviceListEntry;
38 
39  public:
40  RemoteDeviceModelEntry(const QString& pDeviceNameEscaped, const QString& mId, QSharedPointer<RemoteDeviceListEntry>& pRemoteDeviceListEntry);
41  RemoteDeviceModelEntry(const QString& pDeviceNameEscaped, const QString& mId, bool pNetworkVisible, bool pConnected, bool pSupported, const QDateTime& pLastConnected, QSharedPointer<RemoteDeviceListEntry>& pRemoteDeviceListEntry);
42  RemoteDeviceModelEntry(const QString& pDeviceNameEscaped = QStringLiteral("UnknownReader"));
43 
44  bool isPaired() const;
45  void setPaired(bool pPaired);
46  const QString& getId() const;
47  void setId(const QString& pId);
48  bool isNetworkVisible() const;
49  int getLinkQuality() const;
50  bool isSupported() const;
51  void setNetworkVisible(bool pNetworkVisible);
52  const QDateTime& getLastConnected() const;
53  void setLastConnected(const QDateTime& pLastConnected);
54  bool operator==(const RemoteDeviceModelEntry& pOther) const;
55 
56  const QSharedPointer<RemoteDeviceListEntry> getRemoteDeviceListEntry() const;
57  QString getDeviceNameEscaped() const;
58 
59 };
60 
62  : public QAbstractTableModel
63 {
64  Q_OBJECT
65 
67 
68  private:
69  friend class ::test_RemoteDeviceModel;
70 
71  const int NUMBER_OF_COLUMNS = 2;
72 
73  QMap<QString, RemoteServiceSettings::RemoteInfo> mPairedReaders;
74  QVector<RemoteDeviceModelEntry> mAllRemoteReaders;
75  const bool mShowPairedReaders;
76  const bool mShowUnpairedReaders;
77  QTimer mTimer;
78 
79  bool indexIsValid(const QModelIndex& pIndex) const;
80  QString getStatus(const RemoteDeviceModelEntry& pRemoteDeviceModelEntry) const;
81  void updatePairedReaders();
82  void updateUnpairedReaders();
83  void removeVanishedReaders();
84  QVector<RemoteDeviceModelEntry> presentReaders() const;
85  bool addOrUpdateReader(const RemoteDeviceModelEntry& pModelEntry);
86 
87  private Q_SLOTS:
88  void onUpdateReaderList();
89 
90  public:
92  {
93  REMOTE_DEVICE_NAME = Qt::UserRole + 1,
101  };
102 
103  enum ColumnId : int
104  {
107  };
108 
109  RemoteDeviceModel(QObject* pParent = nullptr, bool pShowPairedReaders = true, bool pShowUnpairedReaders = true);
110 
111  virtual QVariant headerData(int pSection, Qt::Orientation pOrientation, int pRole) const override;
112  virtual int rowCount(const QModelIndex& pParent = QModelIndex()) const override;
113  virtual int columnCount(const QModelIndex& pParent = QModelIndex()) const override;
114  virtual QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
115  virtual QHash<int, QByteArray> roleNames() const override;
116 
117  const QSharedPointer<RemoteDeviceListEntry> getRemoteDeviceListEntry(const QModelIndex& pIndex) const;
118  const QSharedPointer<RemoteDeviceListEntry> getRemoteDeviceListEntry(const QString& pDeviceId) const;
119  bool isPaired(const QModelIndex& pIndex) const;
120  bool isSupported(const QModelIndex& pIndex) const;
121  void forgetDevice(const QModelIndex& pIndex);
122  void forgetDevice(const QString& pDeviceId);
123 
124  QString getEmptyListDescriptionStringQml() const;
125  QString getEmptyListDescriptionString(bool pWidgetUiHelp = true) const;
126 
127  public Q_SLOTS:
128  void onUiShown();
129  void onUiHidden();
131  void onDeviceDisconnected(GlobalStatus::Code pCloseCode, const QString& pId);
132 
133  Q_SIGNALS:
134  void fireModelChanged();
135  void fireLanguageChanged();
136 };
137 
138 
139 } // namespace governikus
virtual int columnCount(const QModelIndex &pParent=QModelIndex()) const override
Definition: RemoteDeviceModel.cpp:388
ColumnId
Definition: RemoteDeviceModel.h:103
virtual int rowCount(const QModelIndex &pParent=QModelIndex()) const override
Definition: RemoteDeviceModel.cpp:382
void onKnownRemoteReadersChanged()
Definition: RemoteDeviceModel.cpp:520
QString getEmptyListDescriptionStringQml() const
Definition: RemoteDeviceModel.cpp:575
Code
Definition: GlobalStatus.h:25
void onDeviceDisconnected(GlobalStatus::Code pCloseCode, const QString &pId)
Definition: RemoteDeviceModel.cpp:592
virtual QVariant headerData(int pSection, Qt::Orientation pOrientation, int pRole) const override
Definition: RemoteDeviceModel.cpp:360
Definition: RemoteDeviceModel.h:106
Definition: RemoteDeviceModel.h:105
const QSharedPointer< RemoteDeviceListEntry > getRemoteDeviceListEntry() const
Definition: RemoteDeviceModel.cpp:61
int getLinkQuality() const
Definition: RemoteDeviceModel.cpp:103
const QDateTime & getLastConnected() const
Definition: RemoteDeviceModel.cpp:131
virtual QHash< int, QByteArray > roleNames() const override
Definition: RemoteDeviceModel.cpp:175
void fireLanguageChanged()
Definition: moc_RemoteDeviceModel.cpp:213
Definition: RemoteDeviceModel.h:98
bool isSupported(const QModelIndex &pIndex) const
Definition: RemoteDeviceModel.cpp:483
void setNetworkVisible(bool pNetworkVisible)
Definition: RemoteDeviceModel.cpp:125
Definition: RemoteDeviceModel.h:100
virtual QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: RemoteDeviceModel.cpp:394
Definition: RemoteDeviceModel.h:93
Definition: RemoteDeviceModel.h:61
Definition: RemoteDeviceModel.h:26
RemoteDeviceModel(QObject *pParent=nullptr, bool pShowPairedReaders=true, bool pShowUnpairedReaders=true)
Definition: RemoteDeviceModel.cpp:149
void forgetDevice(const QModelIndex &pIndex)
Definition: RemoteDeviceModel.cpp:553
Definition: RemoteDeviceModel.h:97
void setId(const QString &pId)
Definition: RemoteDeviceModel.cpp:91
void fireModelChanged()
Definition: moc_RemoteDeviceModel.cpp:207
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
Definition: RemoteDeviceModel.h:94
RemoteDeviceModelEntry(const QString &pDeviceNameEscaped, const QString &mId, QSharedPointer< RemoteDeviceListEntry > &pRemoteDeviceListEntry)
Definition: RemoteDeviceModel.cpp:19
bool isPaired(const QModelIndex &pIndex) const
Definition: RemoteDeviceModel.cpp:472
QString getDeviceNameEscaped() const
Definition: RemoteDeviceModel.cpp:67
QString getEmptyListDescriptionString(bool pWidgetUiHelp=true) const
Definition: RemoteDeviceModel.cpp:581
void setLastConnected(const QDateTime &pLastConnected)
Definition: RemoteDeviceModel.cpp:137
bool operator==(const RemoteDeviceModelEntry &pOther) const
Definition: RemoteDeviceModel.cpp:143
const QString & getId() const
Definition: RemoteDeviceModel.cpp:85
void onUiShown()
Definition: RemoteDeviceModel.cpp:494
QString emptyListDescriptionString
Definition: RemoteDeviceModel.h:66
Definition: RemoteDeviceModel.h:95
const QSharedPointer< RemoteDeviceListEntry > getRemoteDeviceListEntry(const QModelIndex &pIndex) const
Definition: RemoteDeviceModel.cpp:447
Definition: test_RemoteDeviceModel.cpp:13
bool isNetworkVisible() const
Definition: RemoteDeviceModel.cpp:97
Definition: RemoteDeviceModel.h:99
SettingsRemoteRoles
Definition: RemoteDeviceModel.h:91
void onUiHidden()
Definition: RemoteDeviceModel.cpp:507
Definition: RemoteDeviceModel.h:96
bool isSupported() const
Definition: RemoteDeviceModel.cpp:119
void setPaired(bool pPaired)
Definition: RemoteDeviceModel.cpp:79
bool isPaired() const
Definition: RemoteDeviceModel.cpp:73