MCPcopy Create free account
hub / github.com/SpartanJ/eepp / createTerminal

Method createTerminal

src/tools/ecode/statusterminalcontroller.cpp:130–263  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128}
129
130UITerminal* StatusTerminalController::createTerminal(
131 const std::string& workingDir, std::string program, std::vector<std::string> args,
132 const std::unordered_map<std::string, std::string>& env ) {
133 Sizef initialSize( 16, 16 );
134 if ( program.empty() && !mContext->termConfig().shell.empty() )
135 program = mContext->termConfig().shell;
136
137 if ( args.empty() && !mContext->termConfig().shellArgs.empty() )
138 args = Process::parseArgs( mContext->termConfig().shellArgs );
139
140 UITerminal* term = UITerminal::New(
141 mContext->getTerminalFont() ? mContext->getTerminalFont() : mContext->getFontMono(),
142 mContext->termConfig().fontSize.asPixels( 0, Sizef(), mContext->getDisplayDPI() ),
143 initialSize, program, args, env,
144 !workingDir.empty() ? workingDir
145 : mContext->getTerminalManager()->getSelectedWorkingDir(),
146 10000, nullptr, false );
147
148 if ( term == nullptr || term->getTerm() == nullptr ) {
149 mContext->getTerminalManager()->displayError( workingDir );
150 return nullptr;
151 }
152
153 const auto& terminalColorSchemes = mContext->getTerminalManager()->getTerminalColorSchemes();
154 const auto& currentTerminalColorScheme =
155 mContext->getTerminalManager()->getTerminalCurrentColorScheme();
156 auto csIt = terminalColorSchemes.find( currentTerminalColorScheme );
157 term->getTerm()->getTerminal()->setAllowMemoryTrimnming( true );
158 term->getTerm()->setCursorMode( mContext->termConfig().cursorStyle );
159 term->setExclusiveMode( mContext->termConfig().exclusiveMode );
160 term->setScrollViewType( mContext->termConfig().scrollBarType );
161 term->setVerticalScrollMode( mContext->termConfig().scrollBarMode );
162
163 term->setColorScheme( csIt != terminalColorSchemes.end()
164 ? terminalColorSchemes.at( currentTerminalColorScheme )
165 : TerminalColorScheme::getDefault() );
166 mContext->getTerminalManager()->setKeybindings( term );
167
168 mApp->registerUnlockedCommands( *term );
169
170 term->setCommand( "switch-to-previous-colorscheme", [this] {
171 auto it = mContext->getTerminalManager()->getTerminalColorSchemes().find(
172 mContext->getTerminalManager()->getTerminalCurrentColorScheme() );
173 auto prev = std::prev( it, 1 );
174 if ( prev != mContext->getTerminalManager()->getTerminalColorSchemes().end() ) {
175 mContext->getTerminalManager()->setTerminalColorScheme( prev->first );
176 } else {
177 mContext->getTerminalManager()->setTerminalColorScheme(
178 mContext->getTerminalManager()->getTerminalColorSchemes().rbegin()->first );
179 }
180 } );
181 term->setCommand( "switch-to-next-colorscheme", [this] {
182 auto it = mContext->getTerminalManager()->getTerminalColorSchemes().find(
183 mContext->getTerminalManager()->getTerminalCurrentColorScheme() );
184 mContext->getTerminalManager()->setTerminalColorScheme(
185 ++it != mContext->getTerminalManager()->getTerminalColorSchemes().end()
186 ? it->first
187 : mContext->getTerminalManager()->getTerminalColorSchemes().begin()->first );

Callers 2

runConfigMethod · 0.80

Calls 15

formatFunction · 0.85
getTerminalFontMethod · 0.80
getFontMonoMethod · 0.80
asPixelsMethod · 0.80
getDisplayDPIMethod · 0.80
getSelectedWorkingDirMethod · 0.80
getTerminalManagerMethod · 0.80
displayErrorMethod · 0.80
setCursorModeMethod · 0.80
setExclusiveModeMethod · 0.80
atMethod · 0.80

Tested by

no test coverage detected