- change: Remove "limit for copy" and "limit for undo" options.
This commit is contained in:
parent
c5bdecca17
commit
04c7f3b5d5
1
NEWS.md
1
NEWS.md
|
@ -127,6 +127,7 @@ Red Panda C++ Version 2.27
|
|||
- fix: Theme manager not correctly inited in options dialog / environment / appearance.
|
||||
- enhancement: Size of icons in the completion popup changes with the editor font size.
|
||||
- change: Completion popup size settings are based on editor's char width/line height.
|
||||
- change: Remove "limit for copy" and "limit for undo" options.
|
||||
|
||||
Red Panda C++ Version 2.26
|
||||
- enhancement: Code suggestion for embedded std::vectors.
|
||||
|
|
|
@ -1645,21 +1645,6 @@ void Editor::resizeEvent(QResizeEvent *event)
|
|||
|
||||
void Editor::copyToClipboard()
|
||||
{
|
||||
if (pSettings->editor().copySizeLimit()) {
|
||||
int startLine = blockBegin().line;
|
||||
int endLine = blockEnd().line;
|
||||
if ((endLine-startLine+1) > pSettings->editor().copyLineLimits()) {
|
||||
QMessageBox::critical(pMainWindow,tr("Error"),
|
||||
tr("The text to be copied exceeds count limit!"));
|
||||
return;
|
||||
}
|
||||
if ((selText().length()) > pSettings->editor().copyCharLimits() * 1000) {
|
||||
QMessageBox::critical(pMainWindow,tr("Error"),
|
||||
tr("The text to be copied exceeds character limit!"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
switch(pSettings->editor().copyWithFormatAs()) {
|
||||
case 1: //HTML
|
||||
copyAsHTML();
|
||||
|
@ -1671,20 +1656,6 @@ void Editor::copyToClipboard()
|
|||
|
||||
void Editor::cutToClipboard()
|
||||
{
|
||||
if (pSettings->editor().copySizeLimit()) {
|
||||
int startLine = blockBegin().line;
|
||||
int endLine = blockEnd().line;
|
||||
if ((endLine-startLine+1) > pSettings->editor().copyLineLimits()) {
|
||||
QMessageBox::critical(pMainWindow,tr("Error"),
|
||||
tr("The text to be cut exceeds count limit!"));
|
||||
return;
|
||||
}
|
||||
if ((selText().length()) > pSettings->editor().copyCharLimits() * 1000) {
|
||||
QMessageBox::critical(pMainWindow,tr("Error"),
|
||||
tr("The text to be cut exceeds character limit!"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
QSynedit::QSynEdit::cutToClipboard();
|
||||
}
|
||||
|
||||
|
@ -5434,9 +5405,6 @@ void Editor::applySettings()
|
|||
((QSynedit::CppSyntaxer*)(syntaxer().get()))->setCustomTypeKeywords(set);
|
||||
}
|
||||
|
||||
this->setUndoLimit(pSettings->editor().undoLimit());
|
||||
this->setUndoMemoryUsage(pSettings->editor().undoMemoryUsage());
|
||||
|
||||
initAutoBackup();
|
||||
|
||||
setMouseWheelScrollSpeed(pSettings->editor().mouseWheelScrollSpeed());
|
||||
|
|
|
@ -705,26 +705,6 @@ void Settings::Editor::setAutoDetectFileEncoding(bool newAutoDetectFileEncoding)
|
|||
mAutoDetectFileEncoding = newAutoDetectFileEncoding;
|
||||
}
|
||||
|
||||
int Settings::Editor::undoLimit() const
|
||||
{
|
||||
return mUndoLimit;
|
||||
}
|
||||
|
||||
void Settings::Editor::setUndoLimit(int newUndoLimit)
|
||||
{
|
||||
mUndoLimit = newUndoLimit;
|
||||
}
|
||||
|
||||
int Settings::Editor::undoMemoryUsage() const
|
||||
{
|
||||
return mUndoMemoryUsage;
|
||||
}
|
||||
|
||||
void Settings::Editor::setUndoMemoryUsage(int newUndoMemoryUsage)
|
||||
{
|
||||
mUndoMemoryUsage = newUndoMemoryUsage;
|
||||
}
|
||||
|
||||
bool Settings::Editor::autoFormatWhenSaved() const
|
||||
{
|
||||
return mAutoFormatWhenSaved;
|
||||
|
@ -1125,36 +1105,6 @@ void Settings::Editor::setCopyRTFUseBackground(bool copyRTFUseBackground)
|
|||
mCopyRTFUseBackground = copyRTFUseBackground;
|
||||
}
|
||||
|
||||
int Settings::Editor::copyLineLimits() const
|
||||
{
|
||||
return mCopyLineLimits;
|
||||
}
|
||||
|
||||
void Settings::Editor::setCopyLineLimits(int copyLineLimits)
|
||||
{
|
||||
mCopyLineLimits = copyLineLimits;
|
||||
}
|
||||
|
||||
int Settings::Editor::copyCharLimits() const
|
||||
{
|
||||
return mCopyCharLimits;
|
||||
}
|
||||
|
||||
void Settings::Editor::setCopyCharLimits(int copyCharLimits)
|
||||
{
|
||||
mCopyCharLimits = copyCharLimits;
|
||||
}
|
||||
|
||||
bool Settings::Editor::copySizeLimit() const
|
||||
{
|
||||
return mCopySizeLimit;
|
||||
}
|
||||
|
||||
void Settings::Editor::setCopySizeLimit(bool copyLimit)
|
||||
{
|
||||
mCopySizeLimit = copyLimit;
|
||||
}
|
||||
|
||||
int Settings::Editor::gutterLeftOffset() const
|
||||
{
|
||||
return mGutterLeftOffset;
|
||||
|
@ -1365,9 +1315,6 @@ void Settings::Editor::doSave()
|
|||
saveValue("gutter_font_only_monospaced",mGutterFontOnlyMonospaced);
|
||||
|
||||
//copy
|
||||
saveValue("copy_limit",mCopySizeLimit);
|
||||
saveValue("copy_char_limits",mCopyCharLimits);
|
||||
saveValue("copy_line_limits",mCopyLineLimits);
|
||||
saveValue("copy_with_format_as",mCopyWithFormatAs);
|
||||
saveValue("copy_rtf_use_background",mCopyRTFUseBackground);
|
||||
saveValue("copy_rtf_use_editor_color_scheme",mCopyRTFUseEditorColor);
|
||||
|
@ -1413,8 +1360,6 @@ void Settings::Editor::doSave()
|
|||
saveValue("auto_load_last_files",mAutoLoadLastFiles);
|
||||
saveValue("default_file_cpp",mDefaultFileCpp);
|
||||
saveValue("auto_detect_file_encoding",mAutoDetectFileEncoding);
|
||||
saveValue("undo_limit",mUndoLimit);
|
||||
saveValue("undo_memory_usage", mUndoMemoryUsage);
|
||||
saveValue("auto_format_when_saved", mAutoFormatWhenSaved);
|
||||
saveValue("remove_trailing_spaces_when_saved",mRemoveTrailingSpacesWhenSaved);
|
||||
saveValue("parse_todos",mParseTodos);
|
||||
|
@ -1518,9 +1463,6 @@ void Settings::Editor::doLoad()
|
|||
mGutterFontOnlyMonospaced = boolValue("gutter_font_only_monospaced",true);
|
||||
|
||||
//copy
|
||||
mCopySizeLimit = boolValue("copy_limit",false);
|
||||
mCopyCharLimits = intValue("copy_char_limits",100);
|
||||
mCopyLineLimits = intValue("copy_line_limits",100000);
|
||||
#ifdef Q_OS_WIN
|
||||
mCopyWithFormatAs = intValue("copy_with_format_as",1); //html
|
||||
#else
|
||||
|
@ -1576,8 +1518,6 @@ void Settings::Editor::doLoad()
|
|||
else
|
||||
mDefaultEncoding = value("default_encoding", ENCODING_UTF8).toByteArray();
|
||||
mAutoDetectFileEncoding = boolValue("auto_detect_file_encoding",true);
|
||||
mUndoLimit = intValue("undo_limit",0);
|
||||
mUndoMemoryUsage = intValue("undo_memory_usage", 0);
|
||||
mAutoFormatWhenSaved = boolValue("auto_format_when_saved", false);
|
||||
mRemoveTrailingSpacesWhenSaved = boolValue("remove_trailing_spaces_when_saved",false);
|
||||
mParseTodos = boolValue("parse_todos",true);
|
||||
|
|
|
@ -212,15 +212,6 @@ public:
|
|||
int gutterRightOffset() const;
|
||||
void setGutterRightOffset(int gutterRightOffset);
|
||||
|
||||
bool copySizeLimit() const;
|
||||
void setCopySizeLimit(bool copyLimit);
|
||||
|
||||
int copyCharLimits() const;
|
||||
void setCopyCharLimits(int copyCharLimits);
|
||||
|
||||
int copyLineLimits() const;
|
||||
void setCopyLineLimits(int copyLineLimits);
|
||||
|
||||
bool copyRTFUseBackground() const;
|
||||
void setCopyRTFUseBackground(bool copyRTFUseBackground);
|
||||
|
||||
|
@ -362,12 +353,6 @@ public:
|
|||
bool autoDetectFileEncoding() const;
|
||||
void setAutoDetectFileEncoding(bool newAutoDetectFileEncoding);
|
||||
|
||||
int undoLimit() const;
|
||||
void setUndoLimit(int newUndoLimit);
|
||||
|
||||
int undoMemoryUsage() const;
|
||||
void setUndoMemoryUsage(int newUndoMemoryUsage);
|
||||
|
||||
bool autoFormatWhenSaved() const;
|
||||
void setAutoFormatWhenSaved(bool newAutoFormatWhenSaved);
|
||||
|
||||
|
@ -471,9 +456,6 @@ public:
|
|||
bool mGutterFontOnlyMonospaced;
|
||||
|
||||
//copy
|
||||
bool mCopySizeLimit;
|
||||
int mCopyCharLimits;
|
||||
int mCopyLineLimits;
|
||||
int mCopyWithFormatAs;
|
||||
bool mCopyRTFUseBackground;
|
||||
bool mCopyRTFUseEditorColor;
|
||||
|
@ -519,8 +501,6 @@ public:
|
|||
bool mReadOnlySytemHeader;
|
||||
bool mAutoLoadLastFiles;
|
||||
bool mDefaultFileCpp;
|
||||
int mUndoLimit;
|
||||
int mUndoMemoryUsage;
|
||||
bool mAutoFormatWhenSaved;
|
||||
bool mRemoveTrailingSpacesWhenSaved;
|
||||
bool mParseTodos;
|
||||
|
|
|
@ -60,10 +60,6 @@ void EditorClipboardWidget::doLoad()
|
|||
//pSettings->editor().load();
|
||||
//copy
|
||||
QString mCopyHTMLColorScheme;
|
||||
|
||||
ui->grpCopySizeLimit->setChecked(pSettings->editor().copySizeLimit());
|
||||
ui->spinCopyCharLimits->setValue(pSettings->editor().copyCharLimits());
|
||||
ui->spinCopyLineLimits->setValue(pSettings->editor().copyLineLimits());
|
||||
ui->cbCopyWithFormatAs->setCurrentIndex(std::max(0,std::min(ui->cbCopyWithFormatAs->count(),
|
||||
pSettings->editor().copyWithFormatAs())) );
|
||||
ui->chkCopyRTFUseBackground->setChecked(pSettings->editor().copyRTFUseBackground());
|
||||
|
@ -78,9 +74,6 @@ void EditorClipboardWidget::doLoad()
|
|||
void EditorClipboardWidget::doSave()
|
||||
{
|
||||
//copy
|
||||
pSettings->editor().setCopySizeLimit(ui->grpCopySizeLimit->isChecked());
|
||||
pSettings->editor().setCopyCharLimits(ui->spinCopyCharLimits->value());
|
||||
pSettings->editor().setCopyLineLimits(ui->spinCopyLineLimits->value());
|
||||
pSettings->editor().setCopyWithFormatAs(ui->cbCopyWithFormatAs->currentIndex());
|
||||
|
||||
pSettings->editor().setCopyRTFUseBackground(ui->chkCopyRTFUseBackground->isChecked());
|
||||
|
|
|
@ -14,90 +14,6 @@
|
|||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpCopySizeLimit">
|
||||
<property name="title">
|
||||
<string>Copy Size Limit</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Don't copy text larger than</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Lines</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Size(kilo characters):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="spinCopyLineLimits">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>99999999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="spinCopyCharLimits">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>999999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_4" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
|
@ -277,9 +193,6 @@
|
|||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>grpCopySizeLimit</tabstop>
|
||||
<tabstop>spinCopyCharLimits</tabstop>
|
||||
<tabstop>spinCopyLineLimits</tabstop>
|
||||
<tabstop>cbCopyWithFormatAs</tabstop>
|
||||
<tabstop>chkCopyHTMLUseBackground</tabstop>
|
||||
<tabstop>chkCopyHTMLUseEditorColor</tabstop>
|
||||
|
|
|
@ -64,8 +64,6 @@ void EditorMiscWidget::doLoad()
|
|||
}
|
||||
ui->cbEncodingDetail->setCurrentText(defaultEncoding);
|
||||
}
|
||||
ui->spinMaxUndo->setValue(pSettings->editor().undoLimit());
|
||||
ui->spinMaxUndoMemory->setValue(pSettings->editor().undoMemoryUsage());
|
||||
if (pSettings->editor().removeTrailingSpacesWhenSaved())
|
||||
ui->rbRemoveTrailingSpaces->setChecked(true);
|
||||
else if (pSettings->editor().autoFormatWhenSaved())
|
||||
|
@ -88,8 +86,6 @@ void EditorMiscWidget::doSave()
|
|||
} else {
|
||||
pSettings->editor().setDefaultEncoding(ui->cbEncoding->currentData().toByteArray());
|
||||
}
|
||||
pSettings->editor().setUndoLimit(ui->spinMaxUndo->value());
|
||||
pSettings->editor().setUndoMemoryUsage(ui->spinMaxUndoMemory->value());
|
||||
pSettings->editor().setAutoFormatWhenSaved(ui->rbAutoReformat->isChecked());
|
||||
pSettings->editor().setRemoveTrailingSpacesWhenSaved(ui->rbRemoveTrailingSpaces->isChecked());
|
||||
pSettings->editor().setParseTodos(ui->chkParseTodos->isChecked());
|
||||
|
|
|
@ -35,58 +35,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>Limits for Undo</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Memory Usage</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="spinMaxUndo">
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000000000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Steps</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QSpinBox" name="spinMaxUndoMemory">
|
||||
<property name="suffix">
|
||||
<string>MB</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>50</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
|
@ -256,8 +204,6 @@
|
|||
<tabstop>chkReadonlySystemHeaders</tabstop>
|
||||
<tabstop>chkLoadLastFiles</tabstop>
|
||||
<tabstop>chkParseTodos</tabstop>
|
||||
<tabstop>spinMaxUndo</tabstop>
|
||||
<tabstop>spinMaxUndoMemory</tabstop>
|
||||
<tabstop>rbNone</tabstop>
|
||||
<tabstop>rbAutoReformat</tabstop>
|
||||
<tabstop>rbRemoveTrailingSpaces</tabstop>
|
||||
|
|
|
@ -54,7 +54,6 @@ void EnvironmentPerformanceWidget::doLoad()
|
|||
// }
|
||||
//#endif
|
||||
ui->chkEditorsShareParser->setChecked(pSettings->codeCompletion().shareParser());
|
||||
ui->spinMaxUndoMemory->setValue(pSettings->editor().undoMemoryUsage());
|
||||
}
|
||||
|
||||
void EnvironmentPerformanceWidget::doSave()
|
||||
|
@ -63,6 +62,5 @@ void EnvironmentPerformanceWidget::doSave()
|
|||
pSettings->codeCompletion().setShareParser(ui->chkEditorsShareParser->isChecked());
|
||||
|
||||
pSettings->codeCompletion().save();
|
||||
pSettings->editor().setUndoMemoryUsage(ui->spinMaxUndoMemory->value());
|
||||
pSettings->editor().save();
|
||||
}
|
||||
|
|
|
@ -34,57 +34,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Max undo memory for each editor:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinMaxUndoMemory">
|
||||
<property name="suffix">
|
||||
<string>MB</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -1373,16 +1373,12 @@ int DocumentLine::glyphStartChar(int i) const
|
|||
|
||||
UndoList::UndoList():QObject()
|
||||
{
|
||||
mMaxUndoActions = 1024;
|
||||
mMaxMemoryUsage = 50 * 1024 * 1024;
|
||||
mNextChangeNumber = 1;
|
||||
mInsideRedo = false;
|
||||
|
||||
mBlockChangeNumber=0;
|
||||
mBlockLock=0;
|
||||
mFullUndoImposible=false;
|
||||
mBlockCount=0;
|
||||
mMemoryUsage=0;
|
||||
mLastPoppedItemChangeNumber=0;
|
||||
mInitialChangeNumber = 0;
|
||||
mLastRestoredItemChangeNumber=0;
|
||||
|
@ -1402,14 +1398,9 @@ void UndoList::addChange(ChangeReason reason, const BufferCoord &startPos,
|
|||
reason,
|
||||
selMode,startPos,endPos,changeText,
|
||||
changeNumber);
|
||||
// qDebug()<<"add change"<<changeNumber<<(int)reason;
|
||||
mItems.append(newItem);
|
||||
addMemoryUsage(newItem);
|
||||
ensureMaxEntries();
|
||||
|
||||
if (reason!=ChangeReason::GroupBreak && !inBlock()) {
|
||||
mBlockCount++;
|
||||
// qDebug()<<"add"<<mBlockCount;
|
||||
emit addedUndo();
|
||||
}
|
||||
}
|
||||
|
@ -1426,13 +1417,9 @@ void UndoList::restoreChange(PUndoItem item)
|
|||
{
|
||||
size_t changeNumber = item->changeNumber();
|
||||
mItems.append(item);
|
||||
addMemoryUsage(item);
|
||||
ensureMaxEntries();
|
||||
if (changeNumber>mNextChangeNumber)
|
||||
mNextChangeNumber=changeNumber;
|
||||
if (changeNumber!=mLastRestoredItemChangeNumber) {
|
||||
// qDebug()<<"restore"<<mBlockCount;
|
||||
mBlockCount++;
|
||||
emit addedUndo();
|
||||
}
|
||||
mLastRestoredItemChangeNumber=changeNumber;
|
||||
|
@ -1464,9 +1451,7 @@ void UndoList::clear()
|
|||
mInitialChangeNumber=0;
|
||||
mLastPoppedItemChangeNumber=0;
|
||||
mLastRestoredItemChangeNumber=0;
|
||||
mBlockCount=0;
|
||||
mBlockLock=0;
|
||||
mMemoryUsage=0;
|
||||
}
|
||||
|
||||
void UndoList::endBlock()
|
||||
|
@ -1478,8 +1463,6 @@ void UndoList::endBlock()
|
|||
size_t iBlockID = mBlockChangeNumber;
|
||||
mBlockChangeNumber = 0;
|
||||
if (mItems.count() > 0 && peekItem()->changeNumber() == iBlockID) {
|
||||
mBlockCount++;
|
||||
// qDebug()<<"end block"<<mBlockCount;
|
||||
emit addedUndo();
|
||||
}
|
||||
}
|
||||
|
@ -1496,30 +1479,6 @@ unsigned int UndoList::getNextChangeNumber()
|
|||
return mNextChangeNumber++;
|
||||
}
|
||||
|
||||
void UndoList::addMemoryUsage(PUndoItem item)
|
||||
{
|
||||
if (!item)
|
||||
return;
|
||||
mMemoryUsage += item->memoryUsage();
|
||||
}
|
||||
|
||||
void UndoList::reduceMemoryUsage(PUndoItem item)
|
||||
{
|
||||
if (!item)
|
||||
return;
|
||||
mMemoryUsage -= item->memoryUsage();
|
||||
}
|
||||
|
||||
int UndoList::maxMemoryUsage() const
|
||||
{
|
||||
return mMaxMemoryUsage;
|
||||
}
|
||||
|
||||
void UndoList::setMaxMemoryUsage(int newMaxMemoryUsage)
|
||||
{
|
||||
mMaxMemoryUsage = newMaxMemoryUsage;
|
||||
}
|
||||
|
||||
ChangeReason UndoList::lastChangeReason()
|
||||
{
|
||||
if (mItems.count() == 0)
|
||||
|
@ -1548,16 +1507,7 @@ PUndoItem UndoList::popItem()
|
|||
else {
|
||||
PUndoItem item = mItems.last();
|
||||
// qDebug()<<"popped"<<item->changeNumber()<<item->changeText()<<(int)item->changeReason()<<mLastPoppedItemChangeNumber;
|
||||
if (mLastPoppedItemChangeNumber!=item->changeNumber() && item->changeReason()!=ChangeReason::GroupBreak) {
|
||||
mBlockCount--;
|
||||
Q_ASSERT(mBlockCount>=0);
|
||||
// qDebug()<<"pop"<<mBlockCount;
|
||||
if (mBlockCount<0) {
|
||||
mBlockCount=0;
|
||||
}
|
||||
}
|
||||
mLastPoppedItemChangeNumber = item->changeNumber();
|
||||
reduceMemoryUsage(item);
|
||||
mItems.removeLast();
|
||||
return item;
|
||||
}
|
||||
|
@ -1573,19 +1523,6 @@ int UndoList::itemCount()
|
|||
return mItems.count();
|
||||
}
|
||||
|
||||
int UndoList::maxUndoActions() const
|
||||
{
|
||||
return mMaxUndoActions;
|
||||
}
|
||||
|
||||
void UndoList::setMaxUndoActions(int maxUndoActions)
|
||||
{
|
||||
if (maxUndoActions!=mMaxUndoActions) {
|
||||
mMaxUndoActions = maxUndoActions;
|
||||
ensureMaxEntries();
|
||||
}
|
||||
}
|
||||
|
||||
bool UndoList::initialState()
|
||||
{
|
||||
if (itemCount() == 0) {
|
||||
|
@ -1618,38 +1555,6 @@ bool UndoList::fullUndoImposible() const
|
|||
return mFullUndoImposible;
|
||||
}
|
||||
|
||||
void UndoList::ensureMaxEntries()
|
||||
{
|
||||
if (mItems.isEmpty())
|
||||
return;
|
||||
// qDebug()<<QString("-- List Memory: %1 %2").arg(mMemoryUsage).arg(mMaxMemoryUsage);
|
||||
if ((mMaxUndoActions >0 && mBlockCount > mMaxUndoActions)
|
||||
|| (mMaxMemoryUsage>0 && mMemoryUsage>mMaxMemoryUsage)){
|
||||
PUndoItem lastItem = mItems.back();
|
||||
mFullUndoImposible = true;
|
||||
while (((mMaxUndoActions >0 && mBlockCount > mMaxUndoActions)
|
||||
|| (mMaxMemoryUsage>0 && mMemoryUsage>mMaxMemoryUsage))
|
||||
&& !mItems.isEmpty()) {
|
||||
//remove all undo item in block
|
||||
PUndoItem item = mItems.front();
|
||||
size_t changeNumber = item->changeNumber();
|
||||
//we shouldn't drop the newest changes;
|
||||
if (changeNumber == lastItem->changeNumber())
|
||||
break;
|
||||
while (mItems.count()>0) {
|
||||
item = mItems.front();
|
||||
if (item->changeNumber()!=changeNumber)
|
||||
break;
|
||||
reduceMemoryUsage(item);
|
||||
mItems.removeFirst();
|
||||
}
|
||||
if (item->changeReason()!=ChangeReason::GroupBreak)
|
||||
mBlockCount--;
|
||||
}
|
||||
}
|
||||
// qDebug()<<QString("++ List Memory: %1").arg(mMemoryUsage);
|
||||
}
|
||||
|
||||
SelectionMode UndoItem::changeSelMode() const
|
||||
{
|
||||
return mChangeSelMode;
|
||||
|
|
|
@ -712,28 +712,18 @@ public:
|
|||
|
||||
bool fullUndoImposible() const;
|
||||
|
||||
int maxMemoryUsage() const;
|
||||
void setMaxMemoryUsage(int newMaxMemoryUsage);
|
||||
|
||||
signals:
|
||||
void addedUndo();
|
||||
protected:
|
||||
void ensureMaxEntries();
|
||||
bool inBlock();
|
||||
unsigned int getNextChangeNumber();
|
||||
void addMemoryUsage(PUndoItem item);
|
||||
void reduceMemoryUsage(PUndoItem item);
|
||||
protected:
|
||||
size_t mBlockChangeNumber;
|
||||
int mBlockLock;
|
||||
int mBlockCount; // count of action blocks;
|
||||
int mMemoryUsage;
|
||||
size_t mLastPoppedItemChangeNumber;
|
||||
size_t mLastRestoredItemChangeNumber;
|
||||
bool mFullUndoImposible;
|
||||
QVector<PUndoItem> mItems;
|
||||
int mMaxUndoActions;
|
||||
int mMaxMemoryUsage;
|
||||
unsigned int mNextChangeNumber;
|
||||
unsigned int mInitialChangeNumber;
|
||||
bool mInsideRedo;
|
||||
|
|
|
@ -6493,17 +6493,6 @@ void QSynEdit::setGutterWidth(int Value)
|
|||
}
|
||||
}
|
||||
|
||||
void QSynEdit::setUndoLimit(int size)
|
||||
{
|
||||
mUndoList->setMaxUndoActions(size);
|
||||
}
|
||||
|
||||
void QSynEdit::setUndoMemoryUsage(int size)
|
||||
{
|
||||
mUndoList->setMaxMemoryUsage(size*1024*1024);
|
||||
// mUndoList->setMaxMemoryUsage(size*1024);
|
||||
}
|
||||
|
||||
void QSynEdit::onBookMarkOptionsChanged()
|
||||
{
|
||||
invalidateGutter();
|
||||
|
|
|
@ -355,9 +355,6 @@ public:
|
|||
return clientWidth() - mGutterWidth - 2;
|
||||
}
|
||||
|
||||
void setUndoLimit(int size);
|
||||
void setUndoMemoryUsage(int size);
|
||||
|
||||
int gutterWidth() const;
|
||||
void setGutterWidth(int value);
|
||||
|
||||
|
|
Loading…
Reference in New Issue