diff --git a/NEWS.md b/NEWS.md index 35b76150..f70516a1 100644 --- a/NEWS.md +++ b/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. diff --git a/RedPandaIDE/editor.cpp b/RedPandaIDE/editor.cpp index 91632065..9153a084 100644 --- a/RedPandaIDE/editor.cpp +++ b/RedPandaIDE/editor.cpp @@ -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()); diff --git a/RedPandaIDE/settings.cpp b/RedPandaIDE/settings.cpp index 8bcf45c2..a4408b81 100644 --- a/RedPandaIDE/settings.cpp +++ b/RedPandaIDE/settings.cpp @@ -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); diff --git a/RedPandaIDE/settings.h b/RedPandaIDE/settings.h index d880a5b4..5ca3c5a8 100644 --- a/RedPandaIDE/settings.h +++ b/RedPandaIDE/settings.h @@ -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; diff --git a/RedPandaIDE/settingsdialog/editorclipboardwidget.cpp b/RedPandaIDE/settingsdialog/editorclipboardwidget.cpp index 7e67dd70..d2c6db8d 100644 --- a/RedPandaIDE/settingsdialog/editorclipboardwidget.cpp +++ b/RedPandaIDE/settingsdialog/editorclipboardwidget.cpp @@ -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()); diff --git a/RedPandaIDE/settingsdialog/editorclipboardwidget.ui b/RedPandaIDE/settingsdialog/editorclipboardwidget.ui index 18a181b5..e04d4822 100644 --- a/RedPandaIDE/settingsdialog/editorclipboardwidget.ui +++ b/RedPandaIDE/settingsdialog/editorclipboardwidget.ui @@ -14,90 +14,6 @@ Form - - - - Copy Size Limit - - - true - - - - - - Don't copy text larger than - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Lines - - - - - - - Size(kilo characters): - - - - - - - 1 - - - 99999999 - - - - - - - 1 - - - 999999 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - @@ -277,9 +193,6 @@ - grpCopySizeLimit - spinCopyCharLimits - spinCopyLineLimits cbCopyWithFormatAs chkCopyHTMLUseBackground chkCopyHTMLUseEditorColor diff --git a/RedPandaIDE/settingsdialog/editormiscwidget.cpp b/RedPandaIDE/settingsdialog/editormiscwidget.cpp index db59d922..4d7bb962 100644 --- a/RedPandaIDE/settingsdialog/editormiscwidget.cpp +++ b/RedPandaIDE/settingsdialog/editormiscwidget.cpp @@ -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()); diff --git a/RedPandaIDE/settingsdialog/editormiscwidget.ui b/RedPandaIDE/settingsdialog/editormiscwidget.ui index 77695623..4ec330d4 100644 --- a/RedPandaIDE/settingsdialog/editormiscwidget.ui +++ b/RedPandaIDE/settingsdialog/editormiscwidget.ui @@ -35,58 +35,6 @@ - - - - Limits for Undo - - - - - - Memory Usage - - - - - - - 0 - - - 1000000000 - - - 50 - - - 10000 - - - - - - - Steps - - - - - - - MB - - - 100 - - - 50 - - - - - - @@ -256,8 +204,6 @@ chkReadonlySystemHeaders chkLoadLastFiles chkParseTodos - spinMaxUndo - spinMaxUndoMemory rbNone rbAutoReformat rbRemoveTrailingSpaces diff --git a/RedPandaIDE/settingsdialog/environmentperformancewidget.cpp b/RedPandaIDE/settingsdialog/environmentperformancewidget.cpp index 93f705ef..123c8e2b 100644 --- a/RedPandaIDE/settingsdialog/environmentperformancewidget.cpp +++ b/RedPandaIDE/settingsdialog/environmentperformancewidget.cpp @@ -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(); } diff --git a/RedPandaIDE/settingsdialog/environmentperformancewidget.ui b/RedPandaIDE/settingsdialog/environmentperformancewidget.ui index 81e455e3..51493c82 100644 --- a/RedPandaIDE/settingsdialog/environmentperformancewidget.ui +++ b/RedPandaIDE/settingsdialog/environmentperformancewidget.ui @@ -34,57 +34,6 @@ - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Max undo memory for each editor: - - - - - - - MB - - - 100 - - - 0 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - diff --git a/libs/qsynedit/qsynedit/document.cpp b/libs/qsynedit/qsynedit/document.cpp index 885464d8..7fc59c34 100644 --- a/libs/qsynedit/qsynedit/document.cpp +++ b/libs/qsynedit/qsynedit/document.cpp @@ -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(); mItems.append(item); - addMemoryUsage(item); - ensureMaxEntries(); if (changeNumber>mNextChangeNumber) mNextChangeNumber=changeNumber; if (changeNumber!=mLastRestoredItemChangeNumber) { -// qDebug()<<"restore"< 0 && peekItem()->changeNumber() == iBlockID) { - mBlockCount++; -// qDebug()<<"end block"<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"<changeNumber()<changeText()<<(int)item->changeReason()<changeNumber() && item->changeReason()!=ChangeReason::GroupBreak) { - mBlockCount--; - Q_ASSERT(mBlockCount>=0); -// qDebug()<<"pop"<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()<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()< mItems; - int mMaxUndoActions; - int mMaxMemoryUsage; unsigned int mNextChangeNumber; unsigned int mInitialChangeNumber; bool mInsideRedo; diff --git a/libs/qsynedit/qsynedit/qsynedit.cpp b/libs/qsynedit/qsynedit/qsynedit.cpp index 3be655cf..f7768206 100644 --- a/libs/qsynedit/qsynedit/qsynedit.cpp +++ b/libs/qsynedit/qsynedit/qsynedit.cpp @@ -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(); diff --git a/libs/qsynedit/qsynedit/qsynedit.h b/libs/qsynedit/qsynedit/qsynedit.h index 91077935..313779ef 100644 --- a/libs/qsynedit/qsynedit/qsynedit.h +++ b/libs/qsynedit/qsynedit/qsynedit.h @@ -355,9 +355,6 @@ public: return clientWidth() - mGutterWidth - 2; } - void setUndoLimit(int size); - void setUndoMemoryUsage(int size); - int gutterWidth() const; void setGutterWidth(int value);