Guitar
UserEvent.h
Go to the documentation of this file.
1 #ifndef USEREVENT_H
2 #define USEREVENT_H
3 
4 #include <QEvent>
5 #include <QVariant>
6 #include <functional>
7 
8 class MainWindow;
9 class UserEvent;
10 
11 enum {
12  UserEventType = QEvent::User,
13 };
14 
16 public:
18  {
19  }
20 };
21 
23 public:
24  QString remote_url;
27  {
28  }
29 };
30 
32 public:
33  typedef std::variant<
37 
39 
41  : mainwindow(mw)
42  {
43  }
44 
45  void operator () (StartEventData const &e);
47 
48  void go(UserEvent *e);
49 };
50 
51 class UserEvent : public QEvent {
52 public:
54 
56  : QEvent((QEvent::Type)UserEventType)
57  , data_(v)
58  {
59  }
60 };
61 
63 {
64  std::visit(*this, e->data_);
65 }
66 
67 #endif // USEREVENT_H
@ UserEventType
Definition: UserEvent.h:12
Definition: UserEvent.h:22
QString remote_url
Definition: UserEvent.h:24
CloneRepositoryEventData(QString const &remote_url)
Definition: UserEvent.h:25
Definition: MainWindow.h:85
Definition: UserEvent.h:15
StartEventData()
Definition: UserEvent.h:17
Definition: UserEvent.h:31
void go(UserEvent *e)
Definition: UserEvent.h:62
UserEventHandler(MainWindow *mw)
Definition: UserEvent.h:40
std::variant< StartEventData, CloneRepositoryEventData > variant_t
Definition: UserEvent.h:36
MainWindow * mainwindow
Definition: UserEvent.h:38
void operator()(StartEventData const &e)
Definition: MainWindow.cpp:594
Definition: UserEvent.h:51
UserEventHandler::variant_t data_
Definition: UserEvent.h:53
UserEvent(UserEventHandler::variant_t &&v)
Definition: UserEvent.h:55