Fixed minor bug in UISplitter that caused to incorrectly calculate its size after being dragged.

Code clean up regarding the status bar (WIP).
This commit is contained in:
Martín Lucas Golini
2024-01-31 01:14:50 -03:00
parent 9a0368af1d
commit ea0f34de7e
12 changed files with 147 additions and 142 deletions

View File

@@ -6,58 +6,7 @@ namespace ecode {
StatusBuildOutputController::StatusBuildOutputController( UISplitter* mainSplitter,
UISceneNode* uiSceneNode, App* app ) :
mMainSplitter( mainSplitter ),
mUISceneNode( uiSceneNode ),
mApp( app ),
mSplitter( mApp->getSplitter() ) {}
void StatusBuildOutputController::toggle() {
if ( nullptr == mContainer ) {
show();
return;
}
if ( mMainSplitter->getLastWidget() != nullptr ) {
if ( mMainSplitter->getLastWidget() == mContainer ) {
hide();
} else {
show();
}
} else {
show();
}
}
void StatusBuildOutputController::hide() {
if ( mContainer && mContainer->isVisible() ) {
mContainer->setParent( mUISceneNode );
mContainer->setVisible( false );
mApp->getStatusBar()->updateState();
if ( mSplitter->getCurWidget() )
mSplitter->getCurWidget()->setFocus();
}
}
void StatusBuildOutputController::show() {
if ( nullptr == mContainer ) {
mMainSplitter->updateLayout();
createContainer();
}
if ( !mContainer->isVisible() ) {
mApp->hideLocateBar();
mApp->hideSearchBar();
mApp->hideGlobalSearchBar();
if ( mMainSplitter->getLastWidget() != nullptr ) {
mMainSplitter->getLastWidget()->setVisible( false );
mMainSplitter->getLastWidget()->setParent( mUISceneNode );
}
mContainer->setParent( mMainSplitter );
mContainer->setVisible( true );
mContainer->getFirstChild()->setFocus();
mApp->getStatusBar()->updateState();
}
}
StatusBarElement( mainSplitter, uiSceneNode, app ) {}
static std::string getProjectOutputParserTypeToString( const ProjectOutputParserTypes& type ) {
switch ( type ) {
@@ -369,6 +318,16 @@ void StatusBuildOutputController::runClean( const std::string& buildName,
}
}
UIWidget* StatusBuildOutputController::getWidget() {
return mContainer;
}
UIWidget* StatusBuildOutputController::createWidget() {
if ( nullptr == mContainer )
createContainer();
return mContainer;
}
UICodeEditor* StatusBuildOutputController::getContainer() {
return mBuildOutput;
}