CompilerExplorer: More Key and Store

Change-Id: I49a79e672915503359380e776b994e53b210eda9
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2023-08-28 15:11:10 +02:00
parent 2e3b6fcf61
commit e6a1d6685e
2 changed files with 19 additions and 17 deletions

View File

@@ -84,14 +84,14 @@ public:
: Utils::BaseAspect(container) : Utils::BaseAspect(container)
{} {}
void fromMap(const QVariantMap &map) override void fromMap(const Utils::Store &map) override
{ {
QTC_ASSERT(!settingsKey().isEmpty(), return); QTC_ASSERT(!settingsKey().isEmpty(), return);
QVariantList list = map[settingsKey()].toList(); QVariantList list = map[settingsKey()].toList();
for (const auto &entry : list) { for (const QVariant &entry : list) {
T item = m_createItem(); T item = m_createItem();
m_toBaseAspect(item)->fromMap(entry.toMap()); m_toBaseAspect(item)->fromMap(Utils::storeFromVariant(entry));
m_volatileItems.append(item); m_volatileItems.append(item);
} }
m_items = m_volatileItems; m_items = m_volatileItems;
@@ -103,13 +103,13 @@ public:
const auto &items = v ? m_volatileItems : m_items; const auto &items = v ? m_volatileItems : m_items;
for (const auto &item : items) { for (const auto &item : items) {
QVariantMap childMap; Utils::Store childMap;
if (v) if (v)
m_toBaseAspect(item)->volatileToMap(childMap); m_toBaseAspect(item)->volatileToMap(childMap);
else else
m_toBaseAspect(item)->toMap(childMap); m_toBaseAspect(item)->toMap(childMap);
list.append(childMap); list.append(Utils::variantFromStore(childMap));
} }
return list; return list;
@@ -118,14 +118,14 @@ public:
void toMap(Utils::Store &map) const override void toMap(Utils::Store &map) const override
{ {
QTC_ASSERT(!settingsKey().isEmpty(), return); QTC_ASSERT(!settingsKey().isEmpty(), return);
const QString key = settingsKey(); const Utils::Key key = settingsKey();
map[key] = toList(false); map[key] = toList(false);
} }
void volatileToMap(Utils::Store &map) const override void volatileToMap(Utils::Store &map) const override
{ {
QTC_ASSERT(!settingsKey().isEmpty(), return); QTC_ASSERT(!settingsKey().isEmpty(), return);
const QString key = settingsKey(); const Utils::Key key = settingsKey();
map[key] = toList(true); map[key] = toList(true);
} }
@@ -191,7 +191,7 @@ public:
return false; return false;
} }
QVariant volatileVariantValue() const override { return {}; }; QVariant volatileVariantValue() const override { return {}; }
private: private:
QList<T> m_items; QList<T> m_items;

View File

@@ -44,6 +44,7 @@
using namespace std::chrono_literals; using namespace std::chrono_literals;
using namespace Aggregation; using namespace Aggregation;
using namespace TextEditor; using namespace TextEditor;
using namespace Utils;
namespace CompilerExplorer { namespace CompilerExplorer {
@@ -51,7 +52,8 @@ class CodeEditorWidget : public TextEditorWidget
{ {
public: public:
CodeEditorWidget(const std::shared_ptr<SourceSettings> &settings) CodeEditorWidget(const std::shared_ptr<SourceSettings> &settings)
: m_settings(settings){}; : m_settings(settings)
{}
void updateHighlighter() void updateHighlighter()
{ {
@@ -94,8 +96,8 @@ JsonSettingsDocument::JsonSettingsDocument()
JsonSettingsDocument::~JsonSettingsDocument() {} JsonSettingsDocument::~JsonSettingsDocument() {}
Core::IDocument::OpenResult JsonSettingsDocument::open(QString *errorString, Core::IDocument::OpenResult JsonSettingsDocument::open(QString *errorString,
const Utils::FilePath &filePath, const FilePath &filePath,
const Utils::FilePath &realFilePath) const FilePath &realFilePath)
{ {
if (!filePath.isReadableFile()) if (!filePath.isReadableFile())
return OpenResult::ReadError; return OpenResult::ReadError;
@@ -121,16 +123,16 @@ Core::IDocument::OpenResult JsonSettingsDocument::open(QString *errorString,
return OpenResult::CannotHandle; return OpenResult::CannotHandle;
} }
m_ceSettings.fromMap(doc.toVariant().toMap()); m_ceSettings.fromMap(storeFromVariant(doc.toVariant().toMap()));
emit settingsChanged(); emit settingsChanged();
return OpenResult::Success; return OpenResult::Success;
} }
bool JsonSettingsDocument::saveImpl(QString *errorString, bool JsonSettingsDocument::saveImpl(QString *errorString,
const Utils::FilePath &newFilePath, const FilePath &newFilePath,
bool autoSave) bool autoSave)
{ {
QVariantMap map; Store map;
if (autoSave) { if (autoSave) {
if (m_windowStateCallback) if (m_windowStateCallback)
@@ -145,7 +147,7 @@ bool JsonSettingsDocument::saveImpl(QString *errorString,
m_ceSettings.toMap(map); m_ceSettings.toMap(map);
} }
QJsonDocument doc = QJsonDocument::fromVariant(map); QJsonDocument doc = QJsonDocument::fromVariant(variantFromStore(map));
Utils::FilePath path = newFilePath.isEmpty() ? filePath() : newFilePath; Utils::FilePath path = newFilePath.isEmpty() ? filePath() : newFilePath;
@@ -174,7 +176,7 @@ bool JsonSettingsDocument::setContents(const QByteArray &contents)
QTC_ASSERT(doc.isObject(), return false); QTC_ASSERT(doc.isObject(), return false);
m_ceSettings.fromMap(doc.toVariant().toMap()); m_ceSettings.fromMap(storeFromVariant(doc.toVariant()));
emit settingsChanged(); emit settingsChanged();
return true; return true;
@@ -241,7 +243,7 @@ CompilerWidget::CompilerWidget(const std::shared_ptr<SourceSettings> &sourceSett
, m_compilerSettings(compilerSettings) , m_compilerSettings(compilerSettings)
{ {
using namespace Layouting; using namespace Layouting;
QVariantMap map; Store map;
m_delayTimer = new QTimer(this); m_delayTimer = new QTimer(this);
m_delayTimer->setSingleShot(true); m_delayTimer->setSingleShot(true);