]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.cpp
The logic of the endParagraph() routine is wrong. We should first
[lyx.git] / src / BufferView.cpp
index ba89032b1a380d0533ec8bc53729e0a481e4c9f9..9a4e5d326adad34122b887751e460443f673a29c 100644 (file)
@@ -1059,7 +1059,6 @@ bool BufferView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
        case LFUN_WORD_FIND:
        case LFUN_WORD_FIND_FORWARD:
        case LFUN_WORD_FIND_BACKWARD:
-       case LFUN_WORD_FINDADV:
        case LFUN_WORD_REPLACE:
        case LFUN_MARK_OFF:
        case LFUN_MARK_ON:
@@ -1077,6 +1076,14 @@ bool BufferView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
                flag.setEnabled(true);
                break;
 
+       case LFUN_WORD_FINDADV: {
+               FindAndReplaceOptions opt;
+               istringstream iss(to_utf8(cmd.argument()));
+               iss >> opt;
+               flag.setEnabled(opt.repl_buf_name.empty()
+                               || !buffer_.isReadonly());
+       }
+
        case LFUN_LABEL_GOTO: {
                flag.setEnabled(!cmd.argument().empty()
                    || getInsetByCode<InsetRef>(cur, REF_CODE));
@@ -1648,9 +1655,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:");