Added Open in New Window and Move to New Window as tab right-click options and Edit options (SpartanJ/ecode#629).

Added `Move Tab to Start` and `Move Tab to End` in tab right-click options (SpartanJ/ecode#630).
Added `--profile` CLI option (SpartanJ/ecode#634).
Added `--disable-plugins` CLI option (SpartanJ/ecode#635).
Moved `crashes` directory to profile directory (SpartanJ/ecode#639).
Added `Settings -> Terminal -> Close Terminal Tab on Exit` (SpartanJ/ecode#643).
This commit is contained in:
Martín Lucas Golini
2025-09-10 01:35:11 -03:00
parent 3a7e4add3a
commit 97a89902e2
13 changed files with 261 additions and 72 deletions

View File

@@ -524,6 +524,16 @@ UITerminal* TerminalManager::createNewTerminal(
term->setTitle( title );
auto csIt = mTerminalColorSchemes.find( mTerminalCurrentColorScheme );
term->getTerm()->getTerminal()->setAllowMemoryTrimnming( true );
term->getTerm()->setKeepAlive( !mApp->getConfig().term.closeTerminalTabOnExit );
term->getTerm()->pushEventCallback( [this, term]( const TerminalDisplay::Event& event ) {
if ( event.type == TerminalDisplay::EventType::PROCESS_EXIT &&
mApp->getConfig().term.closeTerminalTabOnExit && term->getData() != 0 ) {
UITab* tab = (UITab*)term->getData();
auto* tabWidget = mApp->getSplitter()->tabWidgetFromWidget( term );
if ( tabWidget )
tabWidget->removeTab( tab );
}
} );
term->setColorScheme( csIt != mTerminalColorSchemes.end()
? mTerminalColorSchemes.at( mTerminalCurrentColorScheme )
: TerminalColorScheme::getDefault() );
@@ -566,6 +576,26 @@ UITerminal* TerminalManager::createNewTerminal(
term->setExclusiveMode( !term->getExclusiveMode() );
mApp->updateTerminalMenu();
} );
term->setCommand( "move-tab-to-start", [this] {
auto widget = mApp->getSplitter()->getCurWidget();
if ( widget == nullptr || widget->getData() == 0 )
return;
UITabWidget* tabWidget = mApp->getSplitter()->tabWidgetFromWidget( widget );
if ( tabWidget ) {
UITab* tab = (UITab*)widget->getData();
tabWidget->moveTab( tab, 0 );
}
} );
term->setCommand( "move-tab-to-end", [this] {
auto widget = mApp->getSplitter()->getCurWidget();
if ( widget == nullptr || widget->getData() == 0 )
return;
UITabWidget* tabWidget = mApp->getSplitter()->tabWidgetFromWidget( widget );
if ( tabWidget ) {
UITab* tab = (UITab*)widget->getData();
tabWidget->moveTab( tab, tabWidget->getTabCount() );
}
} );
mApp->registerUnlockedCommands( *term );
term->setFocus();
return term;