GCC Code Coverage Report


Directory: ./
File: qtpdcom/src/Message.cpp
Date: 2026-11-08 04:08:44
Exec Total Coverage
Lines: 0 34 0.0%
Branches: 0 44 0.0%

Line Branch Exec Source
1 /*****************************************************************************
2 *
3 * Copyright (C) 2009-2022 Florian Pose <fp@igh.de>
4 *
5 * This file is part of the QtPdCom library.
6 *
7 * The QtPdCom library is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * The QtPdCom library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 * License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with the QtPdCom Library. If not, see <http://www.gnu.org/licenses/>.
19 *
20 ****************************************************************************/
21
22 #include "Message.h"
23
24 #include "MessageImpl.h"
25 #include "MessageItem.h"
26
27 #include <QDateTime>
28
29 namespace QtPdCom {
30
31 /****************************************************************************/
32
33 /** Constructor.
34 */
35 ✗ Message::Message(QObject *parent):
36 QObject(parent),
37 ✗ impl(std::unique_ptr<Impl>(new Message::Impl(this)))
38 {
39 static const auto mt =
40 ✗ qRegisterMetaType<const Message *>("const QtPdCom::Message*");
41 Q_UNUSED(mt);
42 }
43
44 /****************************************************************************/
45
46 /** Destructor.
47 */
48 ✗ Message::~Message()
49 {}
50
51 /****************************************************************************/
52
53 /** \return True, if the message is currently active.
54 */
55 ✗ bool Message::isActive() const
56 {
57 ✗ return impl->currentItem;
58 }
59
60 /****************************************************************************/
61
62 /** \return The message time in seconds.
63 */
64 ✗ double Message::getTime() const
65 {
66 ✗ if (impl->currentItem) {
67 ✗ return impl->currentItem->setTime * 1e-9;
68 }
69 else {
70 ✗ return 0.0;
71 }
72 }
73
74 /****************************************************************************/
75
76 /** \return The message type.
77 */
78 ✗ Message::Type Message::getType() const
79 {
80 ✗ return impl->type;
81 }
82
83 /****************************************************************************/
84
85 /** \return The message path.
86 */
87 ✗ const QString &Message::getPath() const
88 {
89 ✗ return impl->path;
90 }
91
92 /****************************************************************************/
93
94 /** \return The message index.
95 */
96 ✗ int Message::getIndex() const
97 {
98 ✗ return impl->index;
99 }
100
101 /****************************************************************************/
102
103 /** \return The message text. If the text is not available in the desired
104 * language, the default text (empty language) will be returned. If that is
105 * also not available, the text sent by the server is used. Otherwise,
106 * display the message path.
107 */
108 ✗ QString Message::getText(const QString &lang) const
109 {
110 ✗ QString langText = impl->text.value(lang);
111 ✗ if (not langText.isEmpty()) {
112 ✗ return langText;
113 }
114
115 ✗ QString defaultLangText = impl->text.value("");
116 ✗ if (not defaultLangText.isEmpty()) {
117 ✗ return defaultLangText;
118 }
119
120 ✗ if (not impl->serverText.isEmpty()) {
121 ✗ return impl->serverText;
122 }
123
124 ✗ QString path = impl->path;
125 ✗ if (impl->index > -1) {
126 ✗ path += QString("#%1").arg(impl->index);
127 }
128 ✗ return path;
129 }
130
131 /****************************************************************************/
132
133 /** \return The message description.
134 */
135 ✗ QString Message::getDescription(const QString &lang) const
136 {
137 ✗ return impl->description.value(lang, impl->description.value(""));
138 }
139
140 /****************************************************************************/
141
142 /** Returns the message time as a string.
143 */
144 ✗ QString Message::getTimeString() const
145 {
146 ✗ quint64 t {impl->currentItem ? impl->currentItem->setTime : 0};
147 ✗ return impl->timeString(t);
148 }
149
150 /****************************************************************************/
151
152 } // namespace QtPdCom
153
154 /****************************************************************************/
155