mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-12 14:05:59 +00:00
0d43ba149a
For one, it still contains a few things that are already in CVS (the 'brown paperbag' changes). Secondly, this changes the ParagraphList to a std::vector but does not yet take full advantage of it except removing LyXText::parOffset() and similar. I had an extensive talk with my profiler and we are happy nevertheless. This also moves almost all Cut&Paste specific stuff from text.C to CutAndPaste.C. Much smaller interface now... Namespace CutAndPaste is now lyx::cap::. Was inconsistent with the rest.... Make ParagraphList a proper class. We'll need this later for a specialized erase/insert. Remove some unneeded prototypes and function declarations Use ParameterStruct directly instead of ShareContainer<ParameterStruct> Inline a few accesses to CursorSlice members as suggested by the profiler. Fix commandline conversion crash reported by Kayvan. Replace PosIterator by DocumentIterator. The latter can also iterate through math and nested text in math... Remove math specific hack from Documentiterator Derive InsetCollapsable from InsetText instead of using an InsetText member. This give us the opportunity to get rid of the InsetOld::owner_ backpointer. Cosmetics in CutAndPaste.C and cursor.C. Fix nasty crash (popping slices off an empty selection anchor). Add a few asserts. Remove all 'manual' update calls. We do now one per user interaction which is completely sufficient. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8527 a592a061-630c-0410-9148-cb99ea01b6c8
73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file CutAndPaste.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Jürgen Vigna
|
|
* \author Lars Gullik Bjønnes
|
|
* \author Alfredo Braunstein
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef CUTANDPASTE_H
|
|
#define CUTANDPASTE_H
|
|
|
|
#include "support/types.h"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
class Buffer;
|
|
class ErrorList;
|
|
class LyXTextClass;
|
|
class LCursor;
|
|
class ParagraphList;
|
|
|
|
///
|
|
namespace lyx {
|
|
namespace cap {
|
|
|
|
///
|
|
std::vector<std::string> const availableSelections(Buffer const & buffer);
|
|
|
|
///
|
|
void cutSelection(LCursor & cur, bool doclear, bool realcut);
|
|
|
|
/**
|
|
* Sets the selection from the current cursor position to length
|
|
* characters to the right. No safety checks.
|
|
*/
|
|
void setSelectionRange(LCursor & cur, lyx::pos_type length);
|
|
/// simply replace using the font of the first selected character
|
|
void replaceSelectionWithString(LCursor & cur, std::string const & str);
|
|
/// replace selection helper
|
|
void replaceSelection(LCursor & cur);
|
|
|
|
///
|
|
void cutSelection(LCursor & cur, bool doclear = true, bool realcut = true);
|
|
///
|
|
void copySelection(LCursor & cur);
|
|
///
|
|
void pasteSelection(LCursor & cur, size_t sel_index = 0);
|
|
|
|
/** Needed to switch between different classes. This works
|
|
for a list of paragraphs beginning with the specified par
|
|
return value is the number of wrong conversions.
|
|
*/
|
|
int SwitchLayoutsBetweenClasses(lyx::textclass_type c1,
|
|
lyx::textclass_type c2,
|
|
ParagraphList & par,
|
|
ErrorList &);
|
|
///
|
|
bool checkPastePossible();
|
|
|
|
// only used by the spellchecker
|
|
void replaceWord(LCursor & cur, std::string const & replacestring);
|
|
|
|
} // namespace cap
|
|
} // namespce lyx
|
|
|
|
#endif
|