From 6b67e6829af0dee0c20519ba1287ae017c8d456f Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Wed, 23 Jul 2003 16:48:04 +0000 Subject: [PATCH] Prettify the screen label of the external inset. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7353 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 5 +++++ src/factory.C | 6 +++--- src/insets/ChangeLog | 4 ++++ src/insets/insetexternal.C | 34 +++++++++++++++------------------- src/insets/insetexternal.h | 4 +--- 5 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 04e5be3e55..3d78a74912 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2003-07-23 Angus Leeming + + * factory.C (createInset): InsetExternal::setParams now takes a + Buffer const * arg. + 2003-07-23 Angus Leeming * factory.C (createInset): changed interface to the external and diff --git a/src/factory.C b/src/factory.C index da9d063c5a..7a1926b5c6 100644 --- a/src/factory.C +++ b/src/factory.C @@ -198,12 +198,12 @@ Inset * createInset(FuncRequest const & cmd) return inset; } else if (name == "external") { - Buffer const & buffer = *cmd.view()->buffer(); + Buffer const * buffer = cmd.view()->buffer(); InsetExternal::Params iep; InsetExternalMailer::string2params(cmd.argument, - buffer, iep); + *buffer, iep); InsetExternal * inset = new InsetExternal; - inset->setParams(iep); + inset->setParams(iep, buffer); return inset; } else if (name == "graphics") { diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index f15fe6c118..3d25f01ec8 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,7 @@ +2003-07-23 Angus Leeming + + * insetexternal.[Ch] (setParams): pass it a Buffer const *. + 2003-07-23 Angus Leeming * mailinset.[Ch] (inset2string): diff --git a/src/insets/insetexternal.C b/src/insets/insetexternal.C index a40280cd68..1ac3deaad7 100644 --- a/src/insets/insetexternal.C +++ b/src/insets/insetexternal.C @@ -138,10 +138,10 @@ dispatch_result InsetExternal::localDispatch(FuncRequest const & cmd) case LFUN_INSET_MODIFY: { Assert(cmd.view()); - Buffer const & buffer = *cmd.view()->buffer(); + Buffer const * buffer = cmd.view()->buffer(); InsetExternal::Params p; - InsetExternalMailer::string2params(cmd.argument, buffer, p); - setParams(p); + InsetExternalMailer::string2params(cmd.argument, *buffer, p); + setParams(p, buffer); cmd.view()->updateInset(this); return DISPATCHED; } @@ -205,13 +205,14 @@ ExternalTemplate const * getTemplatePtr(InsetExternal::Params const & params) } -string const getScreenLabel(InsetExternal::Params const & params) +string const getScreenLabel(InsetExternal::Params const & params, + Buffer const * buffer) { ExternalTemplate const * const ptr = getTemplatePtr(params); if (!ptr) return bformat(_("External template %1$s is not installed"), params.templatename); - return doSubstitution(params, 0, ptr->guiName); + return doSubstitution(params, buffer, ptr->guiName); } } // namespace anon @@ -223,7 +224,7 @@ InsetExternal::Params const & InsetExternal::params() const } -void InsetExternal::setParams(Params const & p) +void InsetExternal::setParams(Params const & p, Buffer const * buffer) { // The stored params; what we would like to happen in an ideal world. params_.filename = p.filename; @@ -244,7 +245,7 @@ void InsetExternal::setParams(Params const & p) renderer_.reset(button_ptr); } - button_ptr->update(getScreenLabel(params_), true); + button_ptr->update(getScreenLabel(params_, buffer), true); } else { GraphicRenderer * graphic_ptr = @@ -261,12 +262,6 @@ void InsetExternal::setParams(Params const & p) } -string const InsetExternal::editMessage() const -{ - return getScreenLabel(params_); -} - - void InsetExternal::write(Buffer const * buffer, ostream & os) const { os << "External\n" @@ -361,7 +356,7 @@ void InsetExternal::read(Buffer const * buffer, LyXLex & lex) lex.popTable(); // Replace the inset's store - setParams(params); + setParams(params, buffer); lyxerr[Debug::INFO] << "InsetExternal::Read: " << "template: '" << params_.templatename @@ -546,11 +541,12 @@ string const doSubstitution(InsetExternal::Params const & params, Buffer const * buffer, string const & s) { string result; - string const absfilename = params.filename.absFilename(); - string const basename = ChangeExtension(absfilename, string()); - string filepath; + string const buffer_path = buffer ? buffer->filePath() : string(); + string const filename = params.filename.outputFilename(buffer_path); + string const basename = ChangeExtension(filename, string()); + string const filepath = OnlyPath(filename); - result = subst(s, "$$FName", absfilename); + result = subst(s, "$$FName", filename); result = subst(result, "$$Basename", basename); result = subst(result, "$$FPath", filepath); result = subst(result, "$$Tempname", params.tempname); @@ -662,7 +658,7 @@ InsetExternalMailer::params2string(InsetExternal::Params const & params, Buffer const & buffer) { InsetExternal inset; - inset.setParams(params); + inset.setParams(params, &buffer); ostringstream data; data << name_ << ' '; inset.write(&buffer, data); diff --git a/src/insets/insetexternal.h b/src/insets/insetexternal.h index c7f06270b5..3ec0651198 100644 --- a/src/insets/insetexternal.h +++ b/src/insets/insetexternal.h @@ -53,8 +53,6 @@ public: void metrics(MetricsInfo &, Dimension &) const; /// void draw(PainterInfo & pi, int x, int y) const; - /// what appears in the minibuffer when opening - virtual string const editMessage() const; /// virtual EDITABLE editable() const { return IS_EDITABLE; } /// @@ -90,7 +88,7 @@ public: Params const & params() const; /// Set the inset parameters. - virtual void setParams(Params const &); + virtual void setParams(Params const &, Buffer const *); /** update the file represented by the template. If \param external_in_tmpdir == true, then the generated file is -- 2.39.2