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

Method showNextMessage

kdevplatform/sublime/messagewidget.cpp:63–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63void MessageWidget::showNextMessage()
64{
65 // at this point, we should not have a currently shown message
66 Q_ASSERT(!m_currentMessage);
67
68 // if not message to show, just stop
69 if (m_messageQueue.isEmpty()) {
70 hide();
71 return;
72 }
73
74 // track current message
75 m_currentMessage = m_messageQueue[0];
76
77 // set text etc.
78 m_messageWidget->setText(m_currentMessage->text());
79 m_messageWidget->setIcon(m_currentMessage->icon());
80
81 // connect textChanged() and iconChanged(), so it's possible to change this on the fly
82 connect(m_currentMessage, &Message::textChanged,
83 m_messageWidget, &KMessageWidget::setText, Qt::UniqueConnection);
84 connect(m_currentMessage, &Message::iconChanged,
85 m_messageWidget, &KMessageWidget::setIcon, Qt::UniqueConnection);
86
87 const KMessageWidget::MessageType widgetMessageType =
88 kMessageWidgetMessageType(m_currentMessage->messageType());
89 m_messageWidget->setMessageType(widgetMessageType);
90
91 // remove all actions from the message widget
92 const auto messageWidgetActions = m_messageWidget->actions();
93 for (QAction* action : messageWidgetActions) {
94 m_messageWidget->removeAction(action);
95 }
96
97 // add new actions to the message widget
98 const auto m_currentMessageActions = m_currentMessage->actions();
99 for (QAction* action : m_currentMessageActions) {
100 m_messageWidget->addAction(action);
101 }
102
103 // set word wrap of the message
104 setWordWrap(m_currentMessage);
105
106 // setup auto-hide timer, and start if requested
107 m_autoHideTime = m_currentMessage->autoHide();
108 m_autoHideTimer->stop();
109 if (m_autoHideTime >= 0) {
110 connect(m_autoHideTimer, &QTimer::timeout,
111 m_currentMessage, &Message::deleteLater, Qt::UniqueConnection);
112 m_autoHideTimer->start(m_autoHideTime == 0 ? s_defaultAutoHideTime : m_autoHideTime);
113 }
114
115 // finally show
116 show();
117 // NOTE: use a singleShot timer to avoid resizing issues when showing the message widget the first time (bug #316666)
118 QTimer::singleShot(0, m_messageWidget, &KMessageWidget::animatedShow);
119}
120

Callers

nothing calls this directly

Calls 14

setIconMethod · 0.80
setMessageTypeMethod · 0.80
removeActionMethod · 0.80
autoHideMethod · 0.80
stopMethod · 0.80
isEmptyMethod · 0.45
setTextMethod · 0.45
textMethod · 0.45
iconMethod · 0.45
messageTypeMethod · 0.45
actionsMethod · 0.45

Tested by

no test coverage detected