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);