From 30254062207d02c48a116fb2fec1ba8aafd6a552 Mon Sep 17 00:00:00 2001 From: zhanghongyuan Date: Thu, 14 May 2026 11:07:54 +0800 Subject: [PATCH] feat: add option to display quotes around string values --- QJsonModel.cpp | 15 ++++++++++++++- include/QJsonModel.hpp | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/QJsonModel.cpp b/QJsonModel.cpp index 9c43555..cb184d9 100644 --- a/QJsonModel.cpp +++ b/QJsonModel.cpp @@ -253,8 +253,13 @@ QVariant QJsonModel::data(const QModelIndex &index, int role) const { if (index.column() == 0) return QString("%1").arg(item->key()); - if (index.column() == 1) + if (index.column() == 1) { + if (mQuoteVisible && item->type() == QJsonValue::String) { + QString value = item->value().toString(); + return QString("\"%1\"").arg(value); + } return item->value(); + } } else if (Qt::EditRole == role) { if (index.column() == 1) return item->value(); @@ -469,6 +474,14 @@ void QJsonModel::addException(const QStringList &exceptions) { mExceptions = exceptions; } +void QJsonModel::setQuoteVisible(bool visible) { + mQuoteVisible = visible; +} + +bool QJsonModel::quoteVisible() const { + return mQuoteVisible; +} + QJsonValue QJsonModel::genJson(QJsonTreeItem *item) const { auto type = item->type(); int nchild = item->childCount(); diff --git a/include/QJsonModel.hpp b/include/QJsonModel.hpp index 23af7f5..3ecda3b 100644 --- a/include/QJsonModel.hpp +++ b/include/QJsonModel.hpp @@ -105,10 +105,14 @@ class QJsonModel : public QAbstractItemModel { //! List of tags to skip during JSON parsing void addException(const QStringList &exceptions); + // Display format control + void setQuoteVisible(bool visible); + bool quoteVisible() const; private: QJsonValue genJson(QJsonTreeItem *) const; QJsonTreeItem *mRootItem = nullptr; QStringList mHeaders; + bool mQuoteVisible = false; //! List of exceptions (e.g. comments). Case insensitive, compairs on //! "contains". QStringList mExceptions;