From: Daniel Ramoeller Date: Thu, 7 Sep 2023 02:52:42 +0000 (-0400) Subject: Fix bug #11497 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=fdcb160ed85bedf66b03072115b699fac673904a;p=features.git Fix bug #11497 --- 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); //@} };