From: Tommaso Cucinotta Date: Thu, 26 May 2011 16:54:51 +0000 (+0000) Subject: (Replaying r38819 from trunk) X-Git-Tag: 2.0.1~287 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=8de9932b7c0882b54b5c7913005a4882ec6ae2fd;p=features.git (Replaying r38819 from trunk) 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/branches/BRANCH_2_0_X@38845 a592a061-630c-0410-9148-cb99ea01b6c8 --- 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);