MCPcopy Create free account
hub / github.com/KDE/kdevelop / postMessage

Method postMessage

kdevplatform/sublime/messagewidget.cpp:161–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159}
160
161void MessageWidget::postMessage(Message* message, const QVector<QSharedPointer<QAction>>& actions)
162{
163 Q_ASSERT(!m_messageHash.contains(message));
164 m_messageHash.insert(message, actions);
165
166 // insert message sorted after priority
167 int i = 0;
168 for (; i < m_messageQueue.count(); ++i) {
169 if (message->priority() > m_messageQueue[i]->priority()) {
170 break;
171 }
172 }
173
174 // queue message
175 m_messageQueue.insert(i, message);
176
177 // catch if the message gets deleted
178 connect(message, &Message::closed,
179 this, &MessageWidget::messageDestroyed);
180
181 if (i == 0 && !m_messageWidget->isHideAnimationRunning()) {
182 // if message has higher priority than the one currently shown,
183 // then hide the current one and then show the new one.
184 if (m_currentMessage) {
185 // autoHide timer may be running for currently shown message, therefore
186 // simply disconnect autoHide timer to all timeout() receivers
187 disconnect(m_autoHideTimer, SIGNAL(timeout()), nullptr, nullptr);
188 m_autoHideTimer->stop();
189
190 // if there is a current message, the message queue must contain 2 messages
191 Q_ASSERT(m_messageQueue.size() > 1);
192 Q_ASSERT(m_currentMessage == m_messageQueue[1]);
193
194 // a bit unnice: disconnect textChanged() and iconChanged() signals of previously visible message
195 disconnect(m_currentMessage, &Message::textChanged,
196 m_messageWidget, &KMessageWidget::setText);
197 disconnect(m_currentMessage, &Message::iconChanged,
198 m_messageWidget, &KMessageWidget::setIcon);
199
200 m_currentMessage = nullptr;
201 m_messageWidget->animatedHide();
202 } else {
203 showNextMessage();
204 }
205 }
206}
207
208void MessageWidget::messageDestroyed(Message* message)
209{

Callers

nothing calls this directly

Calls 6

stopMethod · 0.80
containsMethod · 0.45
insertMethod · 0.45
countMethod · 0.45
priorityMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected