GCC Code Coverage Report


Directory: ./
File: qtpdcom/src/Message.cpp
Date: 2024-12-01 04:08:21
Exec Total Coverage
Lines: 0 23 0.0%
Branches: 0 30 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.
105 */
106 QString Message::getText(const QString &lang) const
107 {
108 return impl->text.value(lang, impl->text.value(""));
109 }
110
111 /****************************************************************************/
112
113 /** \return The message description.
114 */
115 QString Message::getDescription(const QString &lang) const
116 {
117 return impl->description.value(lang, impl->description.value(""));
118 }
119
120 /****************************************************************************/
121
122 /** Returns the message time as a string.
123 */
124 QString Message::getTimeString() const
125 {
126 quint64 t {impl->currentItem ? impl->currentItem->setTime : 0};
127 return impl->timeString(t);
128 }
129
130 /****************************************************************************/
131
132 } // namespace QtPdCom
133
134 /****************************************************************************/
135