From ed77e105717eb9713a56254375e2646a3a6ddcee Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 17 May 2019 09:26:05 +0200 Subject: [PATCH] LanguageClient: Visualize special trigger characters Instead of having strange looking cells that appear to be empty try to cope at least with some common trigger characters and visualize them. Change-Id: Id0f696eb47df204756a1387535a15c2a1d75cc30 Reviewed-by: David Schulz --- .../languageclient/languageclientsettings.cpp | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 93c930ee311..7bb3182e2d6 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -529,6 +529,26 @@ BaseClientInterface *StdIOSettings::createInterface() const return new StdIOClientInterface(m_executable, arguments()); } +class JsonTreeItemDelegate : public QStyledItemDelegate +{ +public: + QString displayText(const QVariant &value, const QLocale &) const override + { + QString result = value.toString(); + if (result.size() == 1) { + switch (result.at(0).toLatin1()) { + case '\n': + return "\\n"; + case '\t': + return "\\t"; + case '\r': + return "\\r"; + } + } + return result; + } +}; + static QWidget *createCapabilitiesView(const QJsonValue &capabilities) { auto root = new Utils::JsonTreeItem("Capabilities", capabilities); @@ -543,6 +563,7 @@ static QWidget *createCapabilitiesView(const QJsonValue &capabilities) capabilitiesView->setModel(capabilitiesModel); capabilitiesView->setAlternatingRowColors(true); capabilitiesView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); + capabilitiesView->setItemDelegate(new JsonTreeItemDelegate); return capabilitiesView; }