#include "frontends/Alert.h"
#include "frontends/FileDialog.h"
#include "frontends/FontMetrics.h"
-#include "frontends/Selection.h"
#include "graphics/Previews.h"
cursor_.resetAnchor();
cursor_.setCursor(buffer_->getCursor().asDocIterator(&(buffer_->inset())));
cursor_.setSelection();
- theSelection().haveSelection(cursor_.selection());
+ // do not set selection to the new buffer because we
+ // only paste recent selection.
}
}
void BufferView::setCursorFromScrollbar()
{
- if (!buffer)
+ if (!buffer_)
return;
LyXText & t = buffer_->text();
if (!lyxrc.rtl_support)
return;
- if (getLyXText()->real_current_font.isRightToLeft()) {
+ if (cursor_.innerText()->real_current_font.isRightToLeft()) {
if (intl_->keymap == Intl::PRIMARY)
intl_->keyMapSec();
} else {
flag.setOnOff(buffer_->params().trackChanges);
break;
- case LFUN_CHANGES_OUTPUT: {
- OutputParams runparams;
- LaTeXFeatures features(*buffer_, buffer_->params(), runparams);
- flag.enabled(buffer_ && features.isAvailable("dvipost"));
+ case LFUN_CHANGES_OUTPUT:
+ flag.enabled(buffer_ && LaTeXFeatures::isAvailable("dvipost"));
flag.setOnOff(buffer_->params().outputChanges);
break;
- }
case LFUN_CHANGES_MERGE:
case LFUN_CHANGE_NEXT:
showDialog("changes");
break;
- case LFUN_ALL_CHANGES_ACCEPT: {
+ case LFUN_ALL_CHANGES_ACCEPT:
+ // select complete document
cursor_.reset(buffer_->inset());
-#ifdef WITH_WARNINGS
-#warning FIXME changes
-#endif
- while (findNextChange(this))
- getLyXText()->acceptOrRejectChanges(cursor_, LyXText::ACCEPT);
+ cursor_.selHandle(true);
+ buffer_->text().cursorBottom(cursor_);
+ // accept everything in a single step to support atomic undo
+ buffer_->text().acceptOrRejectChanges(cursor_, LyXText::ACCEPT);
break;
- }
- case LFUN_ALL_CHANGES_REJECT: {
+ case LFUN_ALL_CHANGES_REJECT:
+ // select complete document
cursor_.reset(buffer_->inset());
-#ifdef WITH_WARNINGS
-#warning FIXME changes
-#endif
- while (findNextChange(this))
- getLyXText()->acceptOrRejectChanges(cursor_, LyXText::REJECT);
+ cursor_.selHandle(true);
+ buffer_->text().cursorBottom(cursor_);
+ // reject everything in a single step to support atomic undo
+ // Note: reject does not work recursively; the user may have to repeat the operation
+ buffer_->text().acceptOrRejectChanges(cursor_, LyXText::REJECT);
break;
- }
case LFUN_WORD_FIND:
find(this, cmd);
{
if (buffer_) {
cursor_.clearSelection();
+ // Clear the selection buffer. Otherwise a subsequent
+ // middle-mouse-button paste would use the selection buffer,
+ // not the more current external selection.
+ cap::clearSelection();
xsel_cache_.set = false;
// The buffer did not really change, but this causes the
// redraw we need because we cleared the selection above.
}
-LyXText * BufferView::getLyXText()
-{
- LyXText * text = cursor_.innerText();
- BOOST_ASSERT(text);
- return text;
-}
-
-
-LyXText const * BufferView::getLyXText() const
-{
- LyXText const * text = cursor_.innerText();
- BOOST_ASSERT(text);
- return text;
-}
-
-
TextMetrics const & BufferView::textMetrics(LyXText const * t) const
{
return const_cast<BufferView *>(this)->textMetrics(t);
if (!changed)
return false;
+ updateLabels(*buffer_);
+
updateMetrics(false);
buffer_->changed();
return true;
cursor_.setCursor(dit);
cursor_.clearSelection();
- // remember new position.
- cursor_.setTargetX();
finishUndo();
return update;
}
cursor_.setSelection(cursor_, -length);
} else
cursor_.setSelection(cursor_, length);
- theSelection().haveSelection(cursor_.selection());
+ cap::saveSelection(cursor_);
}
}