From 4da7cf9027e463541ac39ab0ed995ee9e9ffd5f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Tue, 14 Mar 2023 01:05:37 -0300 Subject: [PATCH] ecode: A couple of fixes in "Show Image Preview". --- src/tools/ecode/ecode.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index 57cd96b01..b80598a13 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -1834,7 +1834,8 @@ void App::loadImageFromMemory( const std::string& content ) { TextureFactory::instance()->getTexture( TextureFactory::instance()->loadFromMemory( reinterpret_cast( content.c_str() ), content.size() ) ); if ( mImageLayout->isVisible() ) { - imageView->runOnMainThread( [imageView, loaderView, image]() { + imageView->runOnMainThread( [this, imageView, loaderView, image]() { + mImageLayout->setFocus(); imageView->setDrawable( image, true ); loaderView->setVisible( false ); } ); @@ -1861,7 +1862,8 @@ void App::loadImageFromPath( const std::string& path ) { Texture* image = TextureFactory::instance()->getTexture( TextureFactory::instance()->loadFromFile( path ) ); if ( mImageLayout->isVisible() ) { - imageView->runOnMainThread( [imageView, loaderView, image]() { + imageView->runOnMainThread( [this, imageView, loaderView, image]() { + mImageLayout->setFocus(); imageView->setDrawable( image, true ); loaderView->setVisible( false ); } ); @@ -2105,7 +2107,9 @@ void App::onCodeEditorCreated( UICodeEditor* editor, TextDocument& doc ) { UITab* tab = (UITab*)editor->getData(); tab->setIcon( icon->getSize( mMenuIconSize ) ); } + }; + auto docLoaded = [this, editor, docChanged]( const Event* event ) { if ( editor->getDocument().getFileInfo().getExtension() == "svg" ) { editor->getDocument().setCommand( "show-image-preview", [this, editor]() { loadImageFromMemory( editor->getDocument().getText().toUtf8() ); @@ -2118,9 +2122,11 @@ void App::onCodeEditorCreated( UICodeEditor* editor, TextDocument& doc ) { ->setId( "show-image-preview" ); } ); } + + docChanged( event ); }; - editor->addEventListener( Event::OnDocumentLoaded, docChanged ); + editor->addEventListener( Event::OnDocumentLoaded, docLoaded ); editor->addEventListener( Event::OnDocumentChanged, docChanged ); editor->addEventListener( Event::OnDocumentSave, docChanged ); editor->addEventListener( Event::OnEditorTabReady, docChanged ); @@ -2601,6 +2607,12 @@ void App::initImageView() { mImageLayout->findByType( UI_TYPE_IMAGE )->setDrawable( nullptr ); mImageLayout->setEnabled( false )->setVisible( false ); } ); + mImageLayout->on( Event::KeyDown, [this]( const Event* event ) { + if ( event->asKeyEvent()->getKeyCode() == KEY_ESCAPE ) { + mImageLayout->findByType( UI_TYPE_IMAGE )->setDrawable( nullptr ); + mImageLayout->setEnabled( false )->setVisible( false ); + } + } ); } bool App::isFileVisibleInTreeView( const std::string& filePath ) {