]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.cpp
Typo.
[lyx.git] / src / BufferView.cpp
index 2820b7e46ff47b4f456e2ac7b2c4a7dfbafc8cbd..e1ff3897199eb1fc92ecc7435a829bdc09816b3b 100644 (file)
@@ -941,7 +941,15 @@ bool BufferView::scrollToCursor(DocIterator const & dit, bool recenter)
 }
 
 
-void BufferView::updateDocumentClass(DocumentClass const * const olddc)
+void BufferView::makeDocumentClass()
+{
+       DocumentClassConstPtr olddc = buffer_.params().documentClassPtr();
+       buffer_.params().makeDocumentClass();
+       updateDocumentClass(olddc);
+}
+
+
+void BufferView::updateDocumentClass(DocumentClassConstPtr olddc)
 {
        message(_("Converting document to new document class..."));
        
@@ -956,6 +964,7 @@ void BufferView::updateDocumentClass(DocumentClass const * const olddc)
        buffer_.errors("Class Switch");
 }
 
+
 /** Return the change status at cursor position, taking in account the
  * status at each level of the document iterator (a table in a deleted
  * footnote is deleted).
@@ -1234,7 +1243,7 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
        switch (act) {
 
        case LFUN_BUFFER_PARAMS_APPLY: {
-               DocumentClass const * const oldClass = buffer_.params().documentClassPtr();
+               DocumentClassConstPtr olddc = buffer_.params().documentClassPtr();
                cur.recordUndoFullDocument();
                istringstream ss(to_utf8(cmd.argument()));
                Lexer lex;
@@ -1245,7 +1254,7 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                                                << unknown_tokens << " unknown token"
                                                << (unknown_tokens == 1 ? "" : "s"));
                }
-               updateDocumentClass(oldClass);
+               updateDocumentClass(olddc);
                        
                // We are most certainly here because of a change in the document
                // It is then better to make sure that all dialogs are in sync with
@@ -1256,12 +1265,9 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
        }
                
        case LFUN_LAYOUT_MODULES_CLEAR: {
-               DocumentClass const * const oldClass =
-                       buffer_.params().documentClassPtr();
                cur.recordUndoFullDocument();
                buffer_.params().clearLayoutModules();
-               buffer_.params().makeDocumentClass();
-               updateDocumentClass(oldClass);
+               makeDocumentClass();
                dr.screenUpdate(Update::Force);
                dr.forceBufferUpdate();
                break;
@@ -1275,11 +1281,9 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                                "conflicts with installed modules.");
                        break;
                }
-               DocumentClass const * const oldClass = params.documentClassPtr();
                cur.recordUndoFullDocument();
                buffer_.params().addLayoutModule(argument);
-               buffer_.params().makeDocumentClass();
-               updateDocumentClass(oldClass);
+               makeDocumentClass();
                dr.screenUpdate(Update::Force);
                dr.forceBufferUpdate();
                break;
@@ -1306,12 +1310,9 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                        break;
 
                // Save the old, possibly modular, layout for use in conversion.
-               DocumentClass const * const oldDocClass =
-                       buffer_.params().documentClassPtr();
                cur.recordUndoFullDocument();
                buffer_.params().setBaseClass(argument);
-               buffer_.params().makeDocumentClass();
-               updateDocumentClass(oldDocClass);
+               makeDocumentClass();
                dr.screenUpdate(Update::Force);
                dr.forceBufferUpdate();
                break;
@@ -1332,12 +1333,10 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
        }
 
        case LFUN_LAYOUT_RELOAD: {
-               DocumentClass const * const oldClass = buffer_.params().documentClassPtr();
                LayoutFileIndex bc = buffer_.params().baseClassID();
                LayoutFileList::get().reset(bc);
                buffer_.params().setBaseClass(bc);
-               buffer_.params().makeDocumentClass();
-               updateDocumentClass(oldClass);
+               makeDocumentClass();
                dr.screenUpdate(Update::Force);
                dr.forceBufferUpdate();
                break;
@@ -1655,9 +1654,10 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                        from = doc_iterator_begin(&buffer_);
                        to = doc_iterator_end(&buffer_);
                }
-               int const words = countWords(from, to);
-               int const chars = countChars(from, to, false);
-               int const chars_blanks = countChars(from, to, true);
+               buffer_.updateStatistics(from, to);
+               int const words = buffer_.wordCount();
+               int const chars = buffer_.charCount(false);
+               int const chars_blanks = buffer_.charCount(true);
                docstring message;
                if (cur.selection())
                        message = _("Statistics for the selection:");
@@ -1955,6 +1955,7 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                        cur.setCurrentFont();
                        dr.forceBufferUpdate();
                }
+               break;
        }
 
        case LFUN_FILE_INSERT_PLAINTEXT_PARA:
@@ -2199,8 +2200,8 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0)
 
        // Notify left insets
        if (cur != old) {
-               old.fixIfBroken();
-               bool badcursor = notifyCursorLeavesOrEnters(old, cur);
+               bool badcursor = old.fixIfBroken() | cur.fixIfBroken();
+               badcursor |= notifyCursorLeavesOrEnters(old, cur);
                if (badcursor)
                        cursor().fixIfBroken();
        }