From 466af97c39538c678a5c306cdc61ea139742e1de Mon Sep 17 00:00:00 2001 From: Tommaso Cucinotta Date: Sun, 22 May 2011 21:09:57 +0000 Subject: [PATCH] Addressing #7581: now I'm copying the document class as well from the main document WA to the find/replace WAs (in addition to the language, as required for addressing #6560). I'm not cloning the whole BufferParams because we learned from http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg168175.html that, for example, if we inherit the default master by mistake, then we may run into problems. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38819 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/FindAndReplace.cpp | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/frontends/qt4/FindAndReplace.cpp b/src/frontends/qt4/FindAndReplace.cpp index 7934797684..0801d4b664 100644 --- a/src/frontends/qt4/FindAndReplace.cpp +++ b/src/frontends/qt4/FindAndReplace.cpp @@ -21,6 +21,7 @@ #include "BufferParams.h" #include "BufferList.h" +#include "TextClass.h" #include "Cursor.h" #include "FuncRequest.h" #include "lyxfind.h" @@ -468,24 +469,28 @@ void FindAndReplaceWidget::on_replaceallPB_clicked() } +/** Copy selected elements from bv's BufferParams to the dest_bv's one + ** We don't want to copy'em all, e.g., not the default master **/ +static void copy_params(BufferView const & bv, BufferView & dest_bv) { + Buffer const & doc_buf = bv.buffer(); + BufferParams const & doc_bp = doc_buf.params(); + string const & lang = doc_bp.language->lang(); + string const & doc_class = doc_bp.documentClass().name(); + Buffer & dest_buf = dest_bv.buffer(); + dest_buf.params().setLanguage(lang); + dest_buf.params().setBaseClass(doc_class); + dest_buf.params().makeDocumentClass(); + dest_bv.cursor().current_font.setLanguage(doc_bp.language); +} + + void FindAndReplaceWidget::showEvent(QShowEvent * /* ev */) { LYXERR(Debug::DEBUG, "showEvent()" << endl); BufferView * bv = view_.documentBufferView(); if (bv) { - Buffer & doc_buf = bv->buffer(); - BufferParams & doc_bp = doc_buf.params(); - string const & lang = doc_bp.language->lang(); - Buffer & find_buf = find_work_area_->bufferView().buffer(); - LYXERR(Debug::FIND, "Applying document params to find buffer"); - find_buf.params().setLanguage(lang); - Buffer & replace_buf = replace_work_area_->bufferView().buffer(); - LYXERR(Debug::FIND, "Applying document params to replace buffer"); - replace_buf.params().setLanguage(lang); - - LYXERR(Debug::FIND, "Setting current editing language to " << lang << endl); - find_work_area_->bufferView().cursor().current_font.setLanguage(doc_bp.language); - replace_work_area_->bufferView().cursor().current_font.setLanguage(doc_bp.language); + copy_params(*bv, find_work_area_->bufferView()); + copy_params(*bv, replace_work_area_->bufferView()); } find_work_area_->installEventFilter(this);