MCPcopy Create free account
hub / github.com/KDE/kdenlive / PythonDependencyMessage

Method PythonDependencyMessage

src/pythoninterfaces/abstractpythoninterface.cpp:24–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22static bool installInProgress;
23
24PythonDependencyMessage::PythonDependencyMessage(QWidget *parent, AbstractPythonInterface *interface, bool setupErrorOnly)
25 : KMessageWidget(parent)
26 , m_interface(interface)
27{
28 setWordWrap(true);
29 setCloseButtonVisible(false);
30 if (m_interface->status() == AbstractPythonInterface::Installed) {
31 hide();
32 }
33 setText(i18n("Check configuration"));
34 m_installAction = new QAction(QIcon::fromTheme(QStringLiteral("download")), i18n("Install"), this);
35 m_abortAction = new QAction(i18n("Abort installation"), this);
36 addAction(m_installAction);
37 connect(m_abortAction, &QAction::triggered, m_interface, &AbstractPythonInterface::abortScript);
38 connect(m_interface, &AbstractPythonInterface::setupError, this, [&](const QString &message) {
39 if (m_interface->m_installStatus == AbstractPythonInterface::NotInstalled) {
40 removeAction(m_abortAction);
41 m_installAction->setEnabled(true);
42 }
43 doShowMessage(message, KMessageWidget::Warning);
44 });
45 connect(m_interface, &AbstractPythonInterface::installStatusChanged, this, [&]() {
46 switch (m_interface->status()) {
47 case AbstractPythonInterface::Installed:
48 hide();
49 break;
50 case AbstractPythonInterface::InProgress:
51 setMessageType(KMessageWidget::Information);
52 setText(i18n("Installing… please be patient, this can take several minutes"));
53 m_installAction->setEnabled(false);
54 addAction(m_abortAction);
55 show();
56 break;
57 default:
58 setMessageType(KMessageWidget::Warning);
59 setText(i18n("Install plugin to use"));
60 m_installAction->setEnabled(true);
61 removeAction(m_abortAction);
62 show();
63 break;
64 }
65 });
66
67 connect(m_interface, &AbstractPythonInterface::setupMessage, this,
68 [&](const QString &message, int messageType) { doShowMessage(message, KMessageWidget::MessageType(messageType)); });
69
70 if (!setupErrorOnly) {
71 connect(m_interface, &AbstractPythonInterface::checkVersionsResult, this, [&](const QStringList &list) {
72 removeAction(m_abortAction);
73 if (list.isEmpty()) {
74 if (m_interface->featureName().isEmpty()) {
75 doShowMessage(i18n("Everything is properly configured."), KMessageWidget::Positive);
76 } else {
77 doShowMessage(i18n("%1 is properly configured.", m_interface->featureName()), KMessageWidget::Positive);
78 }
79 } else {
80 if (m_interface->featureName().isEmpty()) {
81 doShowMessage(i18n("Everything is configured:<br>%1", list.join(QStringLiteral(", "))), KMessageWidget::Positive);

Callers

nothing calls this directly

Calls 10

MessageTypeEnum · 0.85
setEnabledMethod · 0.80
checkVenvMethod · 0.80
updateDependenciesMethod · 0.80
statusMethod · 0.45
isEmptyMethod · 0.45
featureNameMethod · 0.45
setTextMethod · 0.45
installMessageMethod · 0.45

Tested by

no test coverage detected