diff --git a/src/panels/terminal/terminalpanel.h b/src/panels/terminal/terminalpanel.h --- a/src/panels/terminal/terminalpanel.h +++ b/src/panels/terminal/terminalpanel.h @@ -25,6 +25,7 @@ #include class TerminalInterface; +class KMessageWidget; class QVBoxLayout; class QWidget; @@ -93,6 +94,7 @@ QVBoxLayout* m_layout; TerminalInterface* m_terminal; QWidget* m_terminalWidget; + KMessageWidget* m_konsolePartMissingMessage; KParts::ReadOnlyPart* m_konsolePart; QString m_konsolePartCurrentDirectory; QQueue m_sendCdToTerminalHistory; diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp --- a/src/panels/terminal/terminalpanel.cpp +++ b/src/panels/terminal/terminalpanel.cpp @@ -22,14 +22,17 @@ #include #include #include +#include +#include #include #include #include #include #include #include #include +#include #include #include @@ -132,7 +135,14 @@ connect(m_konsolePart, &KParts::ReadOnlyPart::destroyed, this, &TerminalPanel::terminalExited); m_terminalWidget = m_konsolePart->widget(); m_layout->addWidget(m_terminalWidget); + if (m_konsolePartMissingMessage) { + m_layout->removeWidget(m_konsolePartMissingMessage); + } m_terminal = qobject_cast(m_konsolePart); + } else if (!m_konsolePartMissingMessage) { + m_konsolePartMissingMessage = new KMessageWidget(i18n( + "Terminal cannot be shown because Konsole part (package \"konsole-part\", \"konsole-kpart\" or just \"konsole\") is not installed.")); + m_layout->addWidget(m_konsolePartMissingMessage); } } if (m_terminal) {