Guitar
src
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
15
class
StartEventData
{
16
public
:
17
StartEventData
()
18
{
19
}
20
};
21
22
class
CloneRepositoryEventData
{
23
public
:
24
QString
remote_url
;
25
CloneRepositoryEventData
(QString
const
&
remote_url
)
26
:
remote_url
(
remote_url
)
27
{
28
}
29
};
30
31
class
UserEventHandler
{
32
public
:
33
typedef
std::variant<
34
StartEventData
,
35
CloneRepositoryEventData
36
>
variant_t
;
37
38
MainWindow
*
mainwindow
;
39
40
UserEventHandler
(
MainWindow
*mw)
41
:
mainwindow
(mw)
42
{
43
}
44
45
void
operator ()
(
StartEventData
const
&e);
46
void
operator ()
(
CloneRepositoryEventData
const
&e);
47
48
void
go
(
UserEvent
*e);
49
};
50
51
class
UserEvent
:
public
QEvent {
52
public
:
53
UserEventHandler::variant_t
data_
;
54
55
UserEvent
(
UserEventHandler::variant_t
&&v)
56
: QEvent((QEvent::Type)
UserEventType
)
57
,
data_
(v)
58
{
59
}
60
};
61
62
inline
void
UserEventHandler::go
(
UserEvent
*e)
63
{
64
std::visit(*
this
, e->
data_
);
65
}
66
67
#endif
// USEREVENT_H
UserEventType
@ UserEventType
Definition:
UserEvent.h:12
CloneRepositoryEventData
Definition:
UserEvent.h:22
CloneRepositoryEventData::remote_url
QString remote_url
Definition:
UserEvent.h:24
CloneRepositoryEventData::CloneRepositoryEventData
CloneRepositoryEventData(QString const &remote_url)
Definition:
UserEvent.h:25
MainWindow
Definition:
MainWindow.h:85
StartEventData
Definition:
UserEvent.h:15
StartEventData::StartEventData
StartEventData()
Definition:
UserEvent.h:17
UserEventHandler
Definition:
UserEvent.h:31
UserEventHandler::go
void go(UserEvent *e)
Definition:
UserEvent.h:62
UserEventHandler::UserEventHandler
UserEventHandler(MainWindow *mw)
Definition:
UserEvent.h:40
UserEventHandler::variant_t
std::variant< StartEventData, CloneRepositoryEventData > variant_t
Definition:
UserEvent.h:36
UserEventHandler::mainwindow
MainWindow * mainwindow
Definition:
UserEvent.h:38
UserEventHandler::operator()
void operator()(StartEventData const &e)
Definition:
MainWindow.cpp:594
UserEvent
Definition:
UserEvent.h:51
UserEvent::data_
UserEventHandler::variant_t data_
Definition:
UserEvent.h:53
UserEvent::UserEvent
UserEvent(UserEventHandler::variant_t &&v)
Definition:
UserEvent.h:55
Generated by
1.9.1