mainwindow.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QEvent>
  5. #include <QString>
  6. #include <map>
  7. #include <vector>
  8. #include <string>
  9. #include "../node/Node.hpp"
  10. #include "../node/Utils.hpp"
  11. namespace Ui {
  12. class MainWindow;
  13. }
  14. // Globally visible instance of local client for communicating with ZT1
  15. // Can be null if not connected, or will point to current
  16. extern ZeroTier::Node::LocalClient *zeroTierClient;
  17. class MainWindow : public QMainWindow
  18. {
  19. Q_OBJECT
  20. public:
  21. // Event used to pass messages from the Node::LocalClient thread to the
  22. // main window to update network lists and stats.
  23. class ZTMessageEvent : public QEvent
  24. {
  25. public:
  26. ZTMessageEvent(const std::vector<std::string> &m) :
  27. QEvent(QEvent::User),
  28. ztMessage(m)
  29. {
  30. }
  31. std::vector<std::string> ztMessage;
  32. };
  33. explicit MainWindow(QWidget *parent = 0);
  34. virtual ~MainWindow();
  35. protected:
  36. virtual void timerEvent(QTimerEvent *event);
  37. virtual void customEvent(QEvent *event);
  38. private slots:
  39. void on_joinNetworkButton_clicked();
  40. void on_actionAbout_triggered();
  41. void on_networkIdLineEdit_textChanged(const QString &text);
  42. void on_addressButton_clicked();
  43. private:
  44. Ui::MainWindow *ui;
  45. QString myAddress;
  46. QString myStatus;
  47. QString myVersion;
  48. unsigned int numPeers;
  49. unsigned int cyclesSinceResponseFromService;
  50. std::map< std::string,std::vector<std::string> > networks;
  51. };
  52. #endif // MAINWINDOW_H