From: Jürgen Spitzmüller Date: Sun, 29 Aug 2010 16:40:52 +0000 (+0000) Subject: * InsetHyperlink.{cpp,h}: X-Git-Tag: 2.0.0~2737 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=d427010975672ecf52c1e9fb3db7e06af379fb88;p=features.git * InsetHyperlink.{cpp,h}: * stdcontext.inc: - basic context menu and tooltip (part of bug #6864) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35229 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/lib/ui/stdcontext.inc b/lib/ui/stdcontext.inc index aa082d34d9..526be9fb69 100644 --- a/lib/ui/stdcontext.inc +++ b/lib/ui/stdcontext.inc @@ -640,4 +640,11 @@ Menuset OptItem "Settings...|S" "inset-settings" End +# +# InsetHyperlink context menu +# + Menu "context-hyperlink" + Item "Settings...|S" "inset-settings" + End + End diff --git a/src/insets/InsetHyperlink.cpp b/src/insets/InsetHyperlink.cpp index 3baab50430..e85fb4558a 100644 --- a/src/insets/InsetHyperlink.cpp +++ b/src/insets/InsetHyperlink.cpp @@ -65,7 +65,7 @@ docstring InsetHyperlink::screenLabel() const int InsetHyperlink::latex(odocstream & os, - OutputParams const & runparams) const + OutputParams const & runparams) const { docstring url = getParam("target"); docstring name = getParam("name"); @@ -97,7 +97,7 @@ int InsetHyperlink::latex(odocstream & os, // field because otherwise LaTeX will fail when the hyperlink is // within an argument of another command, e.g. in a \footnote. It // is important that they are escaped as "\#" and not as "\#{}". - for (int k = 0; k < 2; k++) + for (int k = 0; k < 2; k++) for (size_t i = 0, pos; (pos = url.find(chars_url[k], i)) != string::npos; i = pos + 2) @@ -128,7 +128,7 @@ int InsetHyperlink::latex(odocstream & os, // The characters in chars_name[] need to be changed to a command // when they are in the name field. // Therefore the treatment of "\" must be the first thing - for (int k = 0; k < 6; k++) + for (int k = 0; k < 6; k++) for (size_t i = 0, pos; (pos = name.find(chars_name[k], i)) != string::npos; i = pos + 2) @@ -198,10 +198,29 @@ void InsetHyperlink::tocString(odocstream & os) const } +docstring InsetHyperlink::toolTip(BufferView const & /*bv*/, int /*x*/, int /*y*/) const +{ + docstring url = getParam("target"); + docstring type = getParam("type"); + docstring guitype = _("www"); + if (type == "mailto:") + guitype = _("email"); + else if (type == "file:") + guitype = _("file"); + return bformat(_("Hyperlink (%1$s) to %2$s"), guitype, url); +} + + void InsetHyperlink::validate(LaTeXFeatures & features) const { features.require("hyperref"); } +docstring InsetHyperlink::contextMenu(BufferView const &, int, int) const +{ + return from_ascii("context-hyperlink"); +} + + } // namespace lyx diff --git a/src/insets/InsetHyperlink.h b/src/insets/InsetHyperlink.h index 81467eeceb..4362ad039a 100644 --- a/src/insets/InsetHyperlink.h +++ b/src/insets/InsetHyperlink.h @@ -55,6 +55,10 @@ public: bool forceLTR() const { return true; } /// virtual bool isInToc() const { return true; } + /// + docstring contextMenu(BufferView const & bv, int x, int y) const; + /// + docstring toolTip(BufferView const & bv, int x, int y) const; private: Inset * clone() const { return new InsetHyperlink(*this); } };