-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsettings.cpp
87 lines (73 loc) · 2.02 KB
/
settings.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
// Copyright (c) 2019 Ahmet Bilgili
// Licensed under the MIT licence
#include "settings.h"
#include "constants.h"
#include <coreplugin/icore.h>
#include <utils/algorithm.h>
#include <utils/genericconstants.h>
#include <utils/mimetypes/mimedatabase.h>
namespace CppInsightsPlugin {
namespace Internal {
namespace {
const char CPPINSIGHTS_TOOL[] = "cppInsightsTool";
const char CPPINSIGHTS_MIME[] = "cppInsightsMime";
}
Settings::Settings()
{
read();
}
void Settings::read()
{
QSettings *s = Core::ICore::settings();
s->beginGroup(Constants::SETTINGS_GROUP);
s->beginGroup(Constants::OPTIONS_GROUP);
m_cppInsightsTool = s->value(CPPINSIGHTS_TOOL, QString()).toString();
setCppInsightsMimes(s->value(CPPINSIGHTS_MIME, "text/x-c++src").toString());
s->endGroup();
s->endGroup();
}
void Settings::save()
{
QSettings *s = Core::ICore::settings();
s->beginGroup(Constants::SETTINGS_GROUP);
s->beginGroup(Constants::OPTIONS_GROUP);
s->setValue(CPPINSIGHTS_TOOL, m_cppInsightsTool);
s->setValue(CPPINSIGHTS_MIME, cppInsightsMimesAsString());
s->endGroup();
s->endGroup();
}
QString Settings::cppInsightsTool() const
{
return m_cppInsightsTool;
}
void Settings::setCppInsightsTool(const QString &cppInsightsTool)
{
m_cppInsightsTool = cppInsightsTool;
}
QList<Utils::MimeType> Settings::cppInsightsMimes() const
{
return m_mimeTypes;
}
QString Settings::cppInsightsMimesAsString() const
{
return Utils::transform(m_mimeTypes, &Utils::MimeType::name).join("; ");
}
void Settings::setCppInsightsMimes(const QList<Utils::MimeType> &cppInsightsMimes)
{
m_mimeTypes = cppInsightsMimes;
}
void Settings::setCppInsightsMimes(const QString& mimeTypes)
{
const QStringList stringTypes = mimeTypes.split(';');
QList<Utils::MimeType> types;
types.reserve(stringTypes.count());
for (QString t : stringTypes) {
t = t.trimmed();
const Utils::MimeType mime = Utils::mimeTypeForName(t);
if (mime.isValid())
types << mime;
}
setCppInsightsMimes(types);
}
} // namespace Internal
} // namespace CppInsightsPlugin