mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Implement buffer-anonymize more efficiently
The work is done now in Paragraph::anonymize(). Move the handling of the lfun to Buffer class.
This commit is contained in:
parent
86e42848fe
commit
1dba36c7ce
@ -2569,15 +2569,16 @@ bool Buffer::getStatus(FuncRequest const & cmd, FuncStatus & flag)
|
||||
flag.setOnOff(params().output_changes);
|
||||
break;
|
||||
|
||||
case LFUN_BUFFER_TOGGLE_COMPRESSION: {
|
||||
case LFUN_BUFFER_TOGGLE_COMPRESSION:
|
||||
flag.setOnOff(params().compressed);
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_BUFFER_TOGGLE_OUTPUT_SYNC: {
|
||||
case LFUN_BUFFER_TOGGLE_OUTPUT_SYNC:
|
||||
flag.setOnOff(params().output_sync);
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_BUFFER_ANONYMIZE:
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
@ -2849,6 +2850,15 @@ void Buffer::dispatch(FuncRequest const & func, DispatchResult & dr)
|
||||
params().output_sync = !params().output_sync;
|
||||
break;
|
||||
|
||||
case LFUN_BUFFER_ANONYMIZE: {
|
||||
undo().recordUndoFullBuffer(CursorData());
|
||||
CursorData cur(doc_iterator_begin(this));
|
||||
for ( ; cur ; cur.forwardPar())
|
||||
cur.paragraph().anonymize();
|
||||
dr.forceBufferUpdate();
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
dispatched = false;
|
||||
break;
|
||||
|
@ -1134,7 +1134,6 @@ bool BufferView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
|
||||
case LFUN_WORD_FIND_FORWARD:
|
||||
case LFUN_WORD_FIND_BACKWARD:
|
||||
case LFUN_WORD_REPLACE:
|
||||
case LFUN_BUFFER_ANONYMIZE:
|
||||
case LFUN_MARK_OFF:
|
||||
case LFUN_MARK_ON:
|
||||
case LFUN_MARK_TOGGLE:
|
||||
@ -1622,15 +1621,6 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_BUFFER_ANONYMIZE: {
|
||||
for (char c = '0'; c <= 'Z'; c++) {
|
||||
odocstringstream ss;
|
||||
ss << "a\n" << c << "\n0 0 1 1 0";
|
||||
lyx::dispatch(FuncRequest(LFUN_WORD_REPLACE, ss.str()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case LFUN_WORD_FINDADV: {
|
||||
FindAndReplaceOptions opt;
|
||||
istringstream iss(to_utf8(cmd.argument()));
|
||||
|
@ -4148,6 +4148,15 @@ SpellChecker::Result Paragraph::spellCheck(pos_type & from, pos_type & to,
|
||||
}
|
||||
|
||||
|
||||
void Paragraph::anonymize()
|
||||
{
|
||||
// This is a very crude anonymization for now
|
||||
for (char_type & c : d->text_)
|
||||
if (isLetterChar(c) || isNumber(c))
|
||||
c = 'a';
|
||||
}
|
||||
|
||||
|
||||
void Paragraph::Private::markMisspelledWords(
|
||||
pos_type const & first, pos_type const & last,
|
||||
SpellChecker::Result result,
|
||||
|
@ -505,6 +505,10 @@ public:
|
||||
/// presently used only in the XHTML output routines.
|
||||
std::string magicLabel() const;
|
||||
|
||||
/// anonymizes the paragraph contents (but not the paragraphs
|
||||
/// contained inside it. Does not handle undo.
|
||||
void anonymize();
|
||||
|
||||
private:
|
||||
/// Expand the counters for the labelstring of \c layout
|
||||
docstring expandParagraphLabel(Layout const &, BufferParams const &,
|
||||
|
Loading…
Reference in New Issue
Block a user