From fdcb160ed85bedf66b03072115b699fac673904a Mon Sep 17 00:00:00 2001 From: Daniel Ramoeller Date: Wed, 6 Sep 2023 22:52:42 -0400 Subject: [PATCH] Fix bug #11497 --- src/frontends/qt/GuiLabel.cpp | 16 ++++++++++++++-- src/frontends/qt/GuiLabel.h | 2 ++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/frontends/qt/GuiLabel.cpp b/src/frontends/qt/GuiLabel.cpp index 78d1e3fc43..ab902b187d 100644 --- a/src/frontends/qt/GuiLabel.cpp +++ b/src/frontends/qt/GuiLabel.cpp @@ -46,7 +46,7 @@ void GuiLabel::paramsToDialog(Inset const * inset) { InsetLabel const * label = static_cast(inset); InsetCommandParams const & params = label->params(); - keywordED->setText(toqstr(params["name"])); + setKeyword(toqstr(params["name"])); } @@ -63,7 +63,7 @@ bool GuiLabel::initialiseParams(std::string const & sdata) InsetCommandParams p(insetCode()); if (!InsetCommand::string2params(sdata, p)) return false; - keywordED->setText(toqstr(p["name"])); + setKeyword(toqstr(p["name"])); return true; } @@ -76,6 +76,18 @@ bool GuiLabel::checkWidgets(bool readonly) const return !keywordED->text().isEmpty(); } + +void GuiLabel::setKeyword(QString const & keyword) +{ + keywordED->setText(keyword); + // select without prefix + int const colonPos = keyword.indexOf(':'); + if (colonPos == -1) + keywordED->selectAll(); + else + keywordED->setSelection(colonPos + 1, keyword.length() - colonPos + 1); +} + } // namespace frontend } // namespace lyx diff --git a/src/frontends/qt/GuiLabel.h b/src/frontends/qt/GuiLabel.h index 7eb6fd4e37..0997a23fac 100644 --- a/src/frontends/qt/GuiLabel.h +++ b/src/frontends/qt/GuiLabel.h @@ -37,6 +37,8 @@ private: docstring dialogToParams() const override; bool checkWidgets(bool readonly) const override; bool initialiseParams(std::string const &) override; + /// + void setKeyword(QString const & keyword); //@} }; -- 2.39.5