summaryrefslogtreecommitdiff
path: root/src/settingsdialognexus.h
blob: 89a6618f3fc3add01757f12f2f80d36056c935e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef SETTINGSDIALOGNEXUS_H
#define SETTINGSDIALOGNEXUS_H

#include "settings.h"
#include "settingsdialog.h"
#include "nxmaccessmanager.h"

class NexusSettingsTab : public SettingsTab
{
public:
  NexusSettingsTab(Settings& settings, SettingsDialog& dialog);
  void update();

private:
  std::unique_ptr<NexusSSOLogin> m_nexusLogin;
  std::unique_ptr<NexusKeyValidator> m_nexusValidator;

  void on_nexusConnect_clicked();
  void on_nexusManualKey_clicked();
  void on_nexusDisconnect_clicked();
  void on_clearCacheButton_clicked();
  void on_associateButton_clicked();

  void validateKey(const QString& key);
  bool setKey(const QString& key);
  bool clearKey();

  void updateNexusState();
  void updateNexusButtons();
  void updateNexusData();

  void onSSOKeyChanged(const QString& key);
  void onSSOStateChanged(NexusSSOLogin::States s, const QString& e);

  void onValidatorStateChanged(NexusKeyValidator::States s, const QString& e);
  void onValidatorFinished(const APIUserAccount& user);

  void addNexusLog(const QString& s);
};

#endif // SETTINGSDIALOGNEXUS_H