-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpluginerrorview.cpp
113 lines (96 loc) · 3.02 KB
/
pluginerrorview.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "pluginerrorview.h"
#include "extensionsystemtr.h"
#include "pluginspec.h"
#include <QtWidgets>
/*!
\class ExtensionSystem::PluginErrorView
\inheaderfile extensionsystem/pluginerrorview.h
\inmodule QtCreator
\brief The PluginErrorView class implements a widget that displays the
state and error message of a PluginSpec.
Can be used for integration in the application that
uses the plugin manager.
\sa ExtensionSystem::PluginView
*/
using namespace ExtensionSystem;
namespace ExtensionSystem::Internal {
class PluginErrorViewPrivate
{
public:
explicit PluginErrorViewPrivate(PluginErrorView *view)
: q(view)
, state(new QLabel(q))
, errorString(new QTextEdit(q))
{
errorString->setTabChangesFocus(true);
errorString->setReadOnly(true);
auto layout = new QFormLayout(q);
layout->setContentsMargins(QMargins());
layout->addRow(Tr::tr("State:"), state);
layout->addRow(Tr::tr("Error message:"), errorString);
}
PluginErrorView *q = nullptr;
QLabel *state = nullptr;
QTextEdit *errorString = nullptr;
};
} // namespace ExtensionSystem::Internal
using namespace Internal;
/*!
Constructs a new error view with given \a parent widget.
*/
PluginErrorView::PluginErrorView(QWidget *parent)
: QWidget(parent)
, d(new PluginErrorViewPrivate(this))
{}
PluginErrorView::~PluginErrorView()
{
delete d;
}
/*!
Reads the given \a spec and displays its state and
error information in this PluginErrorView.
*/
void PluginErrorView::update(PluginSpec *spec)
{
QString text;
QString tooltip;
switch (spec->state()) {
case PluginSpec::Invalid:
text = Tr::tr("Invalid");
tooltip = Tr::tr("Description file found, but error on read.");
break;
case PluginSpec::Read:
text = Tr::tr("Read");
tooltip = Tr::tr("Description successfully read.");
break;
case PluginSpec::Resolved:
text = Tr::tr("Resolved");
tooltip = Tr::tr("Dependencies are successfully resolved.");
break;
case PluginSpec::Loaded:
text = Tr::tr("Loaded");
tooltip = Tr::tr("Library is loaded.");
break;
case PluginSpec::Initialized:
text = Tr::tr("Initialized");
tooltip = Tr::tr("Plugin's initialization function succeeded.");
break;
case PluginSpec::Running:
text = Tr::tr("Running");
tooltip = Tr::tr("Plugin successfully loaded and running.");
break;
case PluginSpec::Stopped:
text = Tr::tr("Stopped");
tooltip = Tr::tr("Plugin was shut down.");
break;
case PluginSpec::Deleted:
text = Tr::tr("Deleted");
tooltip = Tr::tr("Plugin ended its life cycle and was deleted.");
break;
}
d->state->setText(text);
d->state->setToolTip(tooltip);
d->errorString->setText(spec->errorString());
}