Changeset View
Changeset View
Standalone View
Standalone View
src/pendingvalue.cpp
- This file was added.
1 | /* | ||||
---|---|---|---|---|---|
2 | * SPDX-FileCopyrightText: 2020 Carson Black <uhhadd@gmail.com> | ||||
3 | * | ||||
4 | * SPDX-License-Identifier: LGPL-2.0-or-later | ||||
5 | */ | ||||
6 | | ||||
7 | #include "pendingvalue.h" | ||||
8 | | ||||
9 | #include <QEventLoop> | ||||
10 | | ||||
11 | PendingValue::PendingValue(QObject *parent) : QObject(parent) {} | ||||
12 | | ||||
13 | QVariant PendingValue::await() | ||||
14 | { | ||||
15 | if (!m_value.isNull()) return m_value; | ||||
16 | | ||||
17 | QEventLoop loop; | ||||
18 | connect(this, &PendingValue::ready, &loop, &QEventLoop::quit); | ||||
19 | loop.exec(); | ||||
20 | | ||||
21 | return m_value; | ||||
22 | } | ||||
23 | | ||||
24 | QVariant PendingValue::value() | ||||
25 | { | ||||
26 | return m_value; | ||||
27 | } | ||||
28 | | ||||
29 | void PendingValue::setValue(QVariant value) | ||||
30 | { | ||||
31 | m_value = value; | ||||
32 | Q_EMIT ready(value); | ||||
33 | } | ||||
34 | No newline at end of file |