From b5bde7e7aef3ac550b4fc788c10ef98ee10afeff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=88=AC=E5=B1=B1=E8=99=8E?= Date: Fri, 10 Nov 2023 22:00:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8F=92=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=88=B02.10=E7=9A=84=E6=9C=80=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ndd-json-viewer.pro | 19 +- src/dllmain.cpp | 27 +-- src/docktitlewidget.cpp | 13 +- src/docktitlewidget.ui | 271 +++++++++++----------- src/instanceobj.cpp | 53 +++++ src/instanceobj.h | 34 +++ src/jsonviewsettings.cpp | 10 +- src/jsonviewsettings.ui | 477 ++++++++++++++++++--------------------- src/nddjsonplugin.cpp | 39 ++-- src/nddjsonplugin.h | 14 +- src/scintillaeditor.cpp | 23 +- src/scintillaeditor.h | 19 +- 12 files changed, 541 insertions(+), 458 deletions(-) mode change 100644 => 100755 src/docktitlewidget.ui create mode 100755 src/instanceobj.cpp create mode 100755 src/instanceobj.h mode change 100644 => 100755 src/jsonviewsettings.cpp mode change 100644 => 100755 src/jsonviewsettings.ui mode change 100644 => 100755 src/nddjsonplugin.cpp mode change 100644 => 100755 src/nddjsonplugin.h mode change 100644 => 100755 src/scintillaeditor.cpp mode change 100644 => 100755 src/scintillaeditor.h diff --git a/ndd-json-viewer.pro b/ndd-json-viewer.pro index 7dc48f4..d092c0f 100644 --- a/ndd-json-viewer.pro +++ b/ndd-json-viewer.pro @@ -1,8 +1,9 @@ TEMPLATE = lib CONFIG += qt warn_on - +win32 { QMAKE_CXXFLAGS += /std:c++17 +} QT += core gui widgets @@ -22,6 +23,7 @@ FORMS += \ HEADERS += \ src/define.h \ src/docktitlewidget.h \ + src/instanceobj.h \ src/jsonhandler.h \ src/jsonnode.h \ src/jsonviewsettings.h \ @@ -34,6 +36,7 @@ HEADERS += \ SOURCES += \ src/dllmain.cpp \ src/docktitlewidget.cpp \ + src/instanceobj.cpp \ src/jsonhandler.cpp \ src/jsonviewsettings.cpp \ src/nddjsonplugin.cpp \ @@ -55,6 +58,20 @@ win32 { } } +unix { + if(contains(QMAKE_HOST.arch, x86_64)){ + CONFIG(Debug, Debug|Release){ + DESTDIR = ../../x64/Debug/plugin + LIBS += -L../../x64/Debug + LIBS += -lqmyedit_qt5d + }else{ + DESTDIR = ../../x64/Release/plugin + LIBS += -L../../x64/Release + LIBS += -lqmyedit_qt5 + } + } +} + unix { UI_DIR = .ui MOC_DIR = .moc diff --git a/src/dllmain.cpp b/src/dllmain.cpp index 45f4bea..08ca61b 100644 --- a/src/dllmain.cpp +++ b/src/dllmain.cpp @@ -6,10 +6,10 @@ #include #include - +#include #include - #include +#include "instanceobj.h" #define NDD_EXPORTDLL @@ -30,7 +30,7 @@ extern "C" NDD_EXPORT bool NDD_PROC_IDENTIFY(NDD_PROC_DATA *pProcData); NDD_EXPORT int NDD_PROC_MAIN(QWidget *pNotepad, const QString &strFileName, - std::function getCurEdit, std::function pluginCallBack, NDD_PROC_DATA *procData); + std::function getCurEdit, std::function pluginCallBack, NDD_PROC_DATA *procData); #ifdef __cplusplus } @@ -53,13 +53,10 @@ bool NDD_PROC_IDENTIFY(NDD_PROC_DATA *pProcData) return true; } -NDDJsonPlugin *nddJsonPlugin = nullptr; -static NDD_PROC_DATA s_procData; -static QWidget *s_pMainNotepad = nullptr; -std::function s_getCurEdit; +std::function s_getCurEdit; // 插件的入口点函数 -int NDD_PROC_MAIN(QWidget *pNotepad, const QString &strFileName, std::function getCurEdit, std::function pluginCallBack, +int NDD_PROC_MAIN(QWidget *pNotepad, const QString &strFileName, std::function getCurEdit, std::function pluginCallBack, NDD_PROC_DATA *pProcData) { if (pProcData == nullptr) @@ -67,18 +64,16 @@ int NDD_PROC_MAIN(QWidget *pNotepad, const QString &strFileName, std::functionm_rootMenu, pProcData->m_strFilePath); + pInstance->setObjectName("nddplg"); - nddJsonPlugin->getJsonViewMenu(s_procData.m_rootMenu); + pProcData->m_rootMenu->addAction("Show Json Table", pInstance, &InstanceObj::showJsonTable); + pProcData->m_rootMenu->addAction("Formatting Json(Ctrl+F8)", pInstance, &InstanceObj::formatJson, Qt::CTRL + Qt::Key_F8); + pProcData->m_rootMenu->addAction("Compress Json(Ctrl+F9)", pInstance, &InstanceObj::compressJson, Qt::CTRL + Qt::Key_F9); + pProcData->m_rootMenu->addAction("Settings", pInstance, &InstanceObj::jsonViewSettings); - nddJsonPlugin->setScintilla(s_getCurEdit); - } return 0; } diff --git a/src/docktitlewidget.cpp b/src/docktitlewidget.cpp index be13443..aaea7f2 100644 --- a/src/docktitlewidget.cpp +++ b/src/docktitlewidget.cpp @@ -5,7 +5,8 @@ // You may need to build the project (run Qt uic code generator) to get "ui_DockTitleWidget.h" resolved #include "docktitlewidget.h" -#include "ui_DockTitleWidget.h" +#include "ui_docktitlewidget.h" +#include DockTitleWidget::DockTitleWidget(QWidget *parent) : QWidget(parent), ui(new Ui::DockTitleWidget) { @@ -17,11 +18,11 @@ DockTitleWidget::DockTitleWidget(QWidget *parent) : QWidget(parent), ui(new Ui:: ui->pb_search->setIcon(QIcon(tr(":/res/search.ico"))); ui->pb_close->setIcon(QIcon(tr(":/res/close.ico"))); - connect(ui->pb_refresh, &QPushButton::clicked, this, [this] { emit sigRefreshClicked(); }); - connect(ui->pb_validate, &QPushButton::clicked, this, [this] { emit sigValidateClicked(); }); - connect(ui->pb_format, &QPushButton::clicked, this, [this] { emit sigFormatClicked(); }); - connect(ui->pb_close, &QPushButton::clicked, this, [this] { emit sigCloseClicked(); }); - connect(ui->pb_search, &QPushButton::clicked, this, [this] { + connect(ui->pb_refresh, &QToolButton::clicked, this, [this] { emit sigRefreshClicked(); }); + connect(ui->pb_validate, &QToolButton::clicked, this, [this] { emit sigValidateClicked(); }); + connect(ui->pb_format, &QToolButton::clicked, this, [this] { emit sigFormatClicked(); }); + connect(ui->pb_close, &QToolButton::clicked, this, [this] { emit sigCloseClicked(); }); + connect(ui->pb_search, &QToolButton::clicked, this, [this] { ui->lineEdit->selectAll(); emit sigFindClicked(ui->lineEdit->text()); }); diff --git a/src/docktitlewidget.ui b/src/docktitlewidget.ui old mode 100644 new mode 100755 index 99d0ec5..05eecc9 --- a/src/docktitlewidget.ui +++ b/src/docktitlewidget.ui @@ -6,148 +6,149 @@ 0 0 - 392 + 251 43 + + + 500 + 16777215 + + DockTitleWidget - - - - - - 20 - 0 - - - - - 20 - 0 - - - - - 20 - 16777215 - - - - - - - - - - - - 20 - 0 - - - - - 20 - 0 - - - - - 20 - 16777215 - - - - - - - - - - - - 20 - 0 - - - - - 20 - 0 - - - - - 20 - 16777215 - - - - - - - - - - - - 200 - 0 - - - - - - - - - 20 - 0 - - - - - 20 - 0 - - - - - 20 - 16777215 - - - - - - - + + + 2 + + + 2 + + + 2 + + + 2 + - - - - 15 - 20 - - - - - 15 - 20 - - - - - 15 - 20 - - - - - - + + + 2 + + + + + + 20 + 0 + + + + + 20 + 16777215 + + + + + + + + + + + + 20 + 0 + + + + + 20 + 16777215 + + + + + + + + + + + + 20 + 0 + + + + + 20 + 16777215 + + + + + + + + + + + + 100 + 0 + + + + + 200 + 16777215 + + + + + + + + + 20 + 0 + + + + + 20 + 16777215 + + + + + + + + + + + + 15 + 20 + + + + + 20 + 16777215 + + + + + + + + diff --git a/src/instanceobj.cpp b/src/instanceobj.cpp new file mode 100755 index 0000000..15cb1ee --- /dev/null +++ b/src/instanceobj.cpp @@ -0,0 +1,53 @@ +#include "instanceobj.h" +#include "nddjsonplugin.h" +#include +#include +#include + + +extern std::function s_getCurEdit; +extern std::function s_invokeMainFun; + + +InstanceObj::InstanceObj(QWidget* pNotepad, QMenu* pMenu, QString pluginFilePath) :QObject(pNotepad), m_nddJsonPlugin(nullptr),m_pluginFilePath(pluginFilePath) +{ + m_pNotepad = pNotepad; + m_rootMenu = pMenu; +} + +InstanceObj::~InstanceObj() +{ + +} + +void InstanceObj::init() +{ + if (m_nddJsonPlugin == nullptr) + { + m_nddJsonPlugin = new NDDJsonPlugin(m_pNotepad, m_pluginFilePath, nullptr); + m_nddJsonPlugin->setScintilla(s_getCurEdit, m_pNotepad); + } +} +void InstanceObj::showJsonTable() +{ + init(); + m_nddJsonPlugin->showJsonTable(); +} + +void InstanceObj::formatJson() +{ + init(); + m_nddJsonPlugin->formattingJson(); +} + +void InstanceObj::compressJson() +{ + init(); + m_nddJsonPlugin->compressJson(); +} + +void InstanceObj::jsonViewSettings() +{ + init(); + m_nddJsonPlugin->jsonViewSettings(); +} \ No newline at end of file diff --git a/src/instanceobj.h b/src/instanceobj.h new file mode 100755 index 0000000..a78cfee --- /dev/null +++ b/src/instanceobj.h @@ -0,0 +1,34 @@ +#pragma once +#include +#include + +class QMenu; +class NDDJsonPlugin; + +class InstanceObj :public QObject +{ + Q_OBJECT; +public: + //NddͷʱԶͷŸö + InstanceObj(QWidget* pNotepad, QMenu* pMenu, QString pluginFilePath); + ~InstanceObj(); + +public slots: + void showJsonTable(); + void formatJson(); + void compressJson(); + void jsonViewSettings(); + +public: + QWidget* m_pNotepad; + QMenu* m_rootMenu; + +private: + NDDJsonPlugin* m_nddJsonPlugin; + QString m_pluginFilePath; + +private: + InstanceObj(const InstanceObj& other) = delete; + InstanceObj& operator=(const InstanceObj& other) = delete; + void init(); +}; \ No newline at end of file diff --git a/src/jsonviewsettings.cpp b/src/jsonviewsettings.cpp old mode 100644 new mode 100755 index cfa2d54..1fee9b6 --- a/src/jsonviewsettings.cpp +++ b/src/jsonviewsettings.cpp @@ -5,7 +5,7 @@ // You may need to build the project (run Qt uic code generator) to get "ui_JsonViewSettings.h" resolved #include "jsonviewsettings.h" -#include "ui_JsonViewSettings.h" +#include "ui_jsonviewsettings.h" #include #include @@ -69,7 +69,13 @@ void JsonViewSettings::init(const QString &pluginPath) pluginDir.cd("config"); } - configSetting_ = new QSettings(pluginDir.absolutePath() + "/JSONViewer.ini", QSettings::IniFormat); + QString settingDir = QString("notepad/jsonviewer"); + QSettings qs(QSettings::IniFormat, QSettings::UserScope, settingDir); + QString fileName = qs.fileName(); + + configSetting_ = new QSettings(fileName, QSettings::IniFormat); + + //configSetting_ = new QSettings(pluginDir.absolutePath() + "/JSONViewer.ini", QSettings::IniFormat); if (!configSetting_->contains(INI_FORMATTING_EOL_NAME)) { configSetting_->setValue(INI_FORMATTING_EOL_NAME, (int)LE::kCrLf); diff --git a/src/jsonviewsettings.ui b/src/jsonviewsettings.ui old mode 100644 new mode 100755 index f749ab6..17a81b2 --- a/src/jsonviewsettings.ui +++ b/src/jsonviewsettings.ui @@ -6,266 +6,233 @@ 0 0 - 828 - 560 + 657 + 324 JsonViewSettings - - - - 420 - 230 - 391 - 80 - - - - Line formatting: - - - - - 20 - 20 - 191 - 16 - - - - Default formatting - - - true - - - - - - 20 - 50 - 281 - 16 - - - - Format arrays on a single line - - - - - - - 20 - 50 - 241 - 16 - - - - Auto format json file when opened - - - - - - 420 - 10 - 391 - 80 - - - - Indentation: - - - - - 20 - 20 - 89 - 16 - - - - Auto detect - - - true - - - - - - 210 - 20 - 89 - 16 - - - - Use tab - - - - - - 20 - 50 - 89 - 16 - - - - Use space - - - - - - - 20 - 80 - 161 - 16 - - - - Ignore trailing comma - - - true - - - - - - 20 - 20 - 251 - 16 - - - - Follow current tab if it is json file - - - true - - - - - - 640 - 470 - 171 - 71 - - - - Confirm - - - - - - 20 - 110 - 191 - 16 - - - - Ignore comments in json - - - true - - - - - - 420 - 110 - 391 - 80 - - - - Line Ending: - - - - - 20 - 20 - 89 - 16 - - - - Auto detect - - - true - - - - - - 220 - 20 - 121 - 16 - - - - Window (CR LF) - - - - - - 20 - 50 - 89 - 16 - - - - Unix (LF) - - - - - - 220 - 50 - 141 - 16 - - - - Macintosh (LF) - - - - - - - 20 - 140 - 241 - 16 - - - - Json tree use TableView - - + + + + + Options + + + + + + Follow current tab if it is json file + + + true + + + + + + + Auto format json file when opened + + + + + + + Ignore trailing comma + + + true + + + + + + + Ignore comments in json + + + true + + + + + + + Json tree use TableView + + + + + + + + + + + + Indentation: + + + + + + Auto detect + + + true + + + + + + + Use tab + + + + + + + Use space + + + + + + + + + + Line Ending: + + + + + + Auto detect + + + true + + + + + + + Window (CR LF) + + + + + + + Unix (LF) + + + + + + + Macintosh (LF) + + + + + + + + + + Line formatting: + + + + + + Default formatting + + + true + + + + + + + Format arrays on a single line + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Confirm + + + + + + + Close + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + - + + + pushButton + clicked() + JsonViewSettings + close() + + + 386 + 425 + + + 516 + 504 + + + + diff --git a/src/nddjsonplugin.cpp b/src/nddjsonplugin.cpp old mode 100644 new mode 100755 index aed5a41..bc177fe --- a/src/nddjsonplugin.cpp +++ b/src/nddjsonplugin.cpp @@ -16,15 +16,19 @@ #include #include -NDDJsonPlugin::NDDJsonPlugin(QWidget *mainWidget, const QString &pluginPath, QsciScintilla *pEdit, QObject *parent) - : QObject(parent), +NDDJsonPlugin::NDDJsonPlugin(QWidget *mainWidget, const QString &pluginPath, QsciScintilla *pEdit) + : QObject(mainWidget), scintillaEditor_(nullptr), - jsonViewSettings_(new JsonViewSettings(pluginPath)), + mainWidget_(mainWidget), dockWidget_(new QDockWidget), jsonModel_(new QJsonModel), treeView_(new QTreeView) { + jsonViewSettings_ = new JsonViewSettings(pluginPath, mainWidget); + //ΪڣڹرʱӴҲرաָ + jsonViewSettings_->setWindowFlag(Qt::Window); + dockWidget_->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable); dockWidget_->setAllowedAreas(Qt::LeftDockWidgetArea); @@ -40,7 +44,7 @@ NDDJsonPlugin::NDDJsonPlugin(QWidget *mainWidget, const QString &pluginPath, Qsc connect(dockWidgetTitle, &DockTitleWidget::sigFindClicked, this, [this](const QString &str) { findNode(str); }); treeView_->setEditTriggers(QAbstractItemView::NoEditTriggers); - treeView_->header()->setSectionResizeMode(QHeaderView::ResizeToContents); + //treeView_->header()->setSectionResizeMode(QHeaderView::ResizeToContents); treeView_->setModel(jsonModel_); @@ -51,20 +55,20 @@ NDDJsonPlugin::NDDJsonPlugin(QWidget *mainWidget, const QString &pluginPath, Qsc jsonModel_->setTableViewOrTreeView(jsonViewSettings_->getPluginSetting().useTableView); } -void NDDJsonPlugin::getJsonViewMenu(QMenu *menu) + +void NDDJsonPlugin::showJsonTable() { - menu->addAction("Show Json Table", this, [this] { - refreshTableJson(); - dockWidget_->show(); - }); - - menu->addAction( - "Formatting Json(Ctrl+F8)", this, [this] { formattingJson(); }, Qt::CTRL + Qt::Key_F8); - menu->addAction( - "Compress Json(Ctrl+F9)", this, [this] { compressJson(); }, Qt::CTRL + Qt::Key_F9); - menu->addAction("Settings", this, [this] { this->jsonViewSettings_->show(); }); + refreshTableJson(); + dockWidget_->show(); } + +void NDDJsonPlugin::jsonViewSettings() +{ + this->jsonViewSettings_->show(); +} + + auto NDDJsonPlugin::GetFormatSetting() const -> std::tuple { if (!scintillaEditor_) @@ -285,7 +289,7 @@ void NDDJsonPlugin::findNode(const QString &str) } } } -void NDDJsonPlugin::setScintilla(const std::function &cb) +void NDDJsonPlugin::setScintilla(const std::function &cb, QWidget* pMainNdd) { if (scintillaEditor_) { @@ -293,8 +297,9 @@ void NDDJsonPlugin::setScintilla(const std::function &cb) scintillaEditor_ = nullptr; } - scintillaEditor_ = new ScintillaEditor(cb); + scintillaEditor_ = new ScintillaEditor(cb, pMainNdd); } + bool NDDJsonPlugin::searchNode(QModelIndex index, const QString &str) { auto match = jsonModel_->match(index, Qt::DisplayRole, QVariant::fromValue("*" + str + "*"), -1, diff --git a/src/nddjsonplugin.h b/src/nddjsonplugin.h old mode 100644 new mode 100755 index 333b350..3c1e0c3 --- a/src/nddjsonplugin.h +++ b/src/nddjsonplugin.h @@ -22,13 +22,16 @@ class NDDJsonPlugin : public QObject { Q_OBJECT public: - explicit NDDJsonPlugin(QWidget *mainWidget, const QString &pluginPath, QsciScintilla *pEdit, - QObject *parent = nullptr); + explicit NDDJsonPlugin(QWidget *mainWidget, const QString &pluginPath, QsciScintilla *pEdit); ~NDDJsonPlugin() override = default; public: - void getJsonViewMenu(QMenu *menu); - void setScintilla(const std::function &cb); + //void getJsonViewMenu(QMenu *menu); + void setScintilla(const std::function &cb, QWidget* pMainNdd); + void showJsonTable(); + void compressJson(); + void jsonViewSettings(); + void formattingJson(); private: static int showMessage(const std::string &title, const std::string &msg, int flag, bool bDontShow = false); @@ -37,8 +40,7 @@ private: [[nodiscard]] auto GetFormatSetting() const -> std::tuple; void reportError(const Result &result); - void formattingJson(); - void compressJson(); + void refreshTableJson(); void validateJson(); diff --git a/src/scintillaeditor.cpp b/src/scintillaeditor.cpp old mode 100644 new mode 100755 index 9398b17..8d217e6 --- a/src/scintillaeditor.cpp +++ b/src/scintillaeditor.cpp @@ -6,13 +6,13 @@ #include -ScintillaEditor::ScintillaEditor(const std::function &cb) : scintillaCallback_(cb) +ScintillaEditor::ScintillaEditor(const std::function &cb, QWidget* pMainNdd):scintillaCallback_(cb), m_pMainNdd(pMainNdd) { } std::string ScintillaEditor::getJsonText() { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { @@ -36,7 +36,7 @@ bool ScintillaEditor::isJsonFile() const void ScintillaEditor::replaceSelection(const std::string &text) { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { return; @@ -51,7 +51,7 @@ void ScintillaEditor::replaceSelection(const std::string &text) void ScintillaEditor::makeSelection(size_t start, size_t end) { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { return; @@ -72,7 +72,7 @@ auto ScintillaEditor::getSelectionEnd() const -> size_t auto ScintillaEditor::getEOL() const -> unsigned { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { return {}; @@ -84,10 +84,10 @@ auto ScintillaEditor::getEOL() const -> unsigned auto ScintillaEditor::getIndent() const -> std::tuple { - auto scintilla_ = scintillaCallback_(); - if (!scintilla_) + auto scintilla_ = scintillaCallback_(m_pMainNdd); + if (nullptr == nullptr) { - return {}; + return {0,0}; } bool useTabs = scintilla_->SendScintilla(QsciScintillaBase::SCI_GETUSETABS); char indentChar = useTabs ? '\t' : ' '; @@ -99,7 +99,7 @@ auto ScintillaEditor::getIndent() const -> std::tuple void ScintillaEditor::refreshSelectionPos() { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { return; @@ -115,7 +115,7 @@ void ScintillaEditor::refreshSelectionPos() } void ScintillaEditor::replaceAll(const std::string &text) const { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { return; @@ -127,12 +127,11 @@ void ScintillaEditor::replaceAll(const std::string &text) const } void ScintillaEditor::setCurrentCurPos(int line, int column, const std::string &annotateString) { - auto scintilla_ = scintillaCallback_(); + auto scintilla_ = scintillaCallback_(m_pMainNdd); if (!scintilla_) { return; } scintilla_->setCursorPosition(line, column); - // scintilla_->setMarginText(line, annotateString.c_str(), 0); } diff --git a/src/scintillaeditor.h b/src/scintillaeditor.h old mode 100644 new mode 100755 index 468045d..a37c96c --- a/src/scintillaeditor.h +++ b/src/scintillaeditor.h @@ -5,19 +5,20 @@ #ifndef JSONVIEW_SCINTILLAEDITOR_H #define JSONVIEW_SCINTILLAEDITOR_H -#include #include +#include +#include class QsciScintilla; class ScintillaEditor { -public: - explicit ScintillaEditor(const std::function &cb); + public: + explicit ScintillaEditor(const std::function& cb, QWidget* pMainNdd); ~ScintillaEditor() = default; -public: + public: void setCurrentCurPos(int line, int column, const std::string &annotateString = {}); public: @@ -39,14 +40,16 @@ public: [[nodiscard]] auto getIndent() const -> std::tuple; -private: + private: void refreshSelectionPos(); -private: - std::function scintillaCallback_; + private: + std::function scintillaCallback_; size_t startPos_ = 0; size_t endPos_ = 0; + + QWidget* m_pMainNdd; }; -#endif // JSONVIEW_SCINTILLAEDITOR_H +#endif // JSONVIEW_SCINTILLAEDITOR_H -- Gitee