TextDocument::save fix.

Function name typo fix.
UICodeEditor focus fix.
This commit is contained in:
Martín Lucas Golini
2022-07-11 22:25:11 -03:00
parent 3f4422683d
commit 5c8206abbe
5 changed files with 19 additions and 9 deletions

View File

@@ -169,7 +169,7 @@ class EE_API UICodeEditorSplitter {
UIWidget* getCurWidget() const;
void setCurentWidget( UIWidget* curWidget );
void setCurrentWidget( UIWidget* curWidget );
bool curWidgetExists() const;

View File

@@ -506,9 +506,11 @@ bool TextDocument::save( IOStream& stream, bool keepUndoRedoStatus ) {
}
}
if ( mLineEnding == LineEnding::CRLF ) {
text[text.size() - 1] = '\r';
if ( text[text.size() - 1] == '\n' ) {
text[text.size() - 1] = '\r';
text += "\n";
}
stream.write( text.c_str(), text.size() );
stream.write( &nl, 1 );
} else {
stream.write( text.c_str(), text.size() );
}

View File

@@ -284,7 +284,7 @@ UICodeEditor* UICodeEditorSplitter::createCodeEditor() {
mCurEditor->copyFilePath();
} );
editor->addEventListener( Event::OnFocus, [&]( const Event* event ) {
setCurrentEditor( event->getNode()->asType<UICodeEditor>() );
setCurrentWidget( event->getNode()->asType<UICodeEditor>() );
} );
editor->addEventListener( Event::OnTextChanged, [&]( const Event* event ) {
mClient->onDocumentModified( event->getNode()->asType<UICodeEditor>(),
@@ -437,7 +437,7 @@ void UICodeEditorSplitter::setCurrentEditor( UICodeEditor* editor ) {
mClient->onDocumentStateChanged( editor, editor->getDocument() );
}
void UICodeEditorSplitter::setCurentWidget( UIWidget* curWidget ) {
void UICodeEditorSplitter::setCurrentWidget( UIWidget* curWidget ) {
if ( curWidget->isType( UI_TYPE_CODEEDITOR ) ) {
setCurrentEditor( curWidget->asType<UICodeEditor>() );
return;
@@ -477,7 +477,7 @@ UICodeEditorSplitter::createWidgetInTabWidget( UITabWidget* tabWidget, UIWidget*
UITab* tab = tabWidget->add( tabName, widget );
widget->setData( (UintPtr)tab );
widget->addEventListener( Event::OnFocus, [&]( const Event* event ) {
setCurentWidget( event->getNode()->asType<UIWidget>() );
setCurrentWidget( event->getNode()->asType<UIWidget>() );
} );
widget->addEventListener( Event::OnTitleChange, [&]( const Event* event ) {
const TextEvent* tevent = static_cast<const TextEvent*>( event );
@@ -524,7 +524,7 @@ UITabWidget* UICodeEditorSplitter::createEditorWithTabWidget( Node* parent, bool
setCurrentEditor(
tabWidget->getTabSelected()->getOwnedWidget()->asType<UICodeEditor>() );
} else {
setCurentWidget( tabWidget->getTabSelected()->getOwnedWidget()->asType<UIWidget>() );
setCurrentWidget( tabWidget->getTabSelected()->getOwnedWidget()->asType<UIWidget>() );
}
} );
tabWidget->setTabTryCloseCallback( [&]( UITab* tab ) -> bool {

View File

@@ -1635,6 +1635,8 @@ const bool& UICodeEditor::isLocked() const {
void UICodeEditor::setLocked( bool locked ) {
if ( mLocked != locked ) {
mLocked = locked;
if ( !mLocked && hasFocus() )
mDoc->setActiveClient( this );
invalidateDraw();
}
}

View File

@@ -2198,7 +2198,10 @@ UITerminal* App::createNewTerminal( const std::string& title, UITabWidget* inTab
mSplitter->removeUnusedTab( tabWidget );
ret.first->setIcon( findIcon( "filetype-bash" ) );
term->setTitle( title );
term->setColorScheme( mTerminalColorSchemes.at( mTerminalCurrentColorScheme ) );
auto csIt = mTerminalColorSchemes.find( mTerminalCurrentColorScheme );
term->setColorScheme( csIt != mTerminalColorSchemes.end()
? mTerminalColorSchemes.at( mTerminalCurrentColorScheme )
: TerminalColorScheme::getDefault() );
term->addEventListener( Event::OnTitleChange, [&]( const Event* event ) {
if ( event->getNode() != mSplitter->getCurWidget() )
return;
@@ -2368,7 +2371,10 @@ void App::setTerminalColorScheme( const std::string& name ) {
if ( name != mTerminalCurrentColorScheme ) {
mTerminalCurrentColorScheme = name;
mConfig.term.colorScheme = name;
applyTerminalColorScheme( mTerminalColorSchemes.at( mTerminalCurrentColorScheme ) );
auto csIt = mTerminalColorSchemes.find( mTerminalCurrentColorScheme );
applyTerminalColorScheme( csIt != mTerminalColorSchemes.end()
? mTerminalColorSchemes.at( mTerminalCurrentColorScheme )
: TerminalColorScheme::getDefault() );
mNotificationCenter->addNotification( String::format(
i18n( "terminal_color_scheme_set", "Terminal color scheme: %s" ).toUtf8().c_str(),
mTerminalCurrentColorScheme.c_str() ) );