Author: tommaso Date: Sun May 22 23:09:57 2011 New Revision: 38819 URL: http://www.lyx.org/trac/changeset/38819
Log: 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/[email protected]/msg168175.html that, for example, if we inherit the default master by mistake, then we may run into problems. Modified: lyx-devel/trunk/src/frontends/qt4/FindAndReplace.cpp Modified: lyx-devel/trunk/src/frontends/qt4/FindAndReplace.cpp ============================================================================== --- lyx-devel/trunk/src/frontends/qt4/FindAndReplace.cpp Sun May 22 20:53:53 2011 (r38818) +++ lyx-devel/trunk/src/frontends/qt4/FindAndReplace.cpp Sun May 22 23:09:57 2011 (r38819) @@ -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 @@ } +/** 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);
