diff --git a/include/eepp/ui/uinode.hpp b/include/eepp/ui/uinode.hpp index 80de1cefb..b235ac9c2 100644 --- a/include/eepp/ui/uinode.hpp +++ b/include/eepp/ui/uinode.hpp @@ -320,7 +320,7 @@ class EE_API UINode : public Node { Sizef fitMinMaxSizePx( const Sizef& size ) const; - bool isScrollable() const; + virtual bool isScrollable() const; protected: Vector2f mDpPos; diff --git a/include/eepp/ui/uiscrollablewidget.hpp b/include/eepp/ui/uiscrollablewidget.hpp index dd5a6c5ef..f4f52bc44 100644 --- a/include/eepp/ui/uiscrollablewidget.hpp +++ b/include/eepp/ui/uiscrollablewidget.hpp @@ -56,9 +56,12 @@ class EE_API UIScrollableWidget : public UIWidget { bool shouldVerticalScrollBeVisible() const; bool isAutoSetClipStep() const; - void setAutoSetClipStep(bool setClipStep); - protected: + void setAutoSetClipStep( bool setClipStep ); + + virtual bool isScrollable() const; + + protected: ScrollViewType mViewType; ScrollBarMode mVScrollMode; ScrollBarMode mHScrollMode; diff --git a/src/eepp/ui/abstract/uiabstracttableview.cpp b/src/eepp/ui/abstract/uiabstracttableview.cpp index 6957dc11d..2e3cdfee1 100644 --- a/src/eepp/ui/abstract/uiabstracttableview.cpp +++ b/src/eepp/ui/abstract/uiabstracttableview.cpp @@ -132,7 +132,7 @@ void UIAbstractTableView::createOrUpdateColumns( bool resetColumnData ) { col.widget->setPixelsSize( col.width, getHeaderHeight() ); } - if ( mAutoColumnsWidth && visibleColCount > 1 && getModel()->rowCount() > 0 ) { + if ( mAutoColumnsWidth && visibleColCount > 1 ) { Float contentWidth = getContentSpaceWidth(); bool shouldVScrollBeVisible = shouldVerticalScrollBeVisible(); if ( !mVScroll->isVisible() && shouldVScrollBeVisible ) diff --git a/src/eepp/ui/uiscrollablewidget.cpp b/src/eepp/ui/uiscrollablewidget.cpp index b4eef3373..25661c520 100644 --- a/src/eepp/ui/uiscrollablewidget.cpp +++ b/src/eepp/ui/uiscrollablewidget.cpp @@ -205,6 +205,10 @@ void UIScrollableWidget::setAutoSetClipStep( bool setClipStep ) { mAutoSetClipStep = setClipStep; } +bool UIScrollableWidget::isScrollable() const { + return UIWidget::isScrollable() && getScrollableArea().y > 0; +} + void UIScrollableWidget::updateScroll() { Sizef totalScroll = getScrollableArea(); Vector2f initScroll( mScrollOffset ); diff --git a/src/eepp/ui/uitableview.cpp b/src/eepp/ui/uitableview.cpp index 592a38102..e8b9c62bd 100644 --- a/src/eepp/ui/uitableview.cpp +++ b/src/eepp/ui/uitableview.cpp @@ -122,7 +122,8 @@ Float UITableView::getMaxColumnContentWidth( const size_t& colIndex, bool bestGu lWidth = w; } }; - if ( bestGuess ) { + // TODO: Improve best guess + if ( bestGuess && getItemCount() > 10 ) { Variant dataTest( getModel()->data( getModel()->index( 0, colIndex ) ) ); bool isStdString = dataTest.is( Variant::Type::StdString ); bool isString = dataTest.is( Variant::Type::String ); diff --git a/src/tools/ecode/uibuildsettings.cpp b/src/tools/ecode/uibuildsettings.cpp index 80a57ff66..a2f3790b3 100644 --- a/src/tools/ecode/uibuildsettings.cpp +++ b/src/tools/ecode/uibuildsettings.cpp @@ -579,6 +579,7 @@ UIBuildSettings::UIBuildSettings( ProjectBuild& build, ProjectBuildConfiguration } ); UITableView* tableOP = find( "table_output_parsers" ); + tableOP->setMainColumn( 1 ); tableOP->setAutoColumnsWidth( true ); tableOP->setFitAllColumnsToWidget( true ); auto modelOP = OutputParserModel::create( mBuild.mOutputParser.mConfig, @@ -661,6 +662,7 @@ void UIBuildSettings::bindTable( const std::string& name, const std::string& key model->setColumnName( 0, getTranslatorString( key + "_name", "Name" ) ); model->setColumnName( 1, getTranslatorString( key + "_value", "Value" ) ); model->setIsEditable( true ); + table->setMainColumn( 1 ); table->setAutoColumnsWidth( true ); table->setFitAllColumnsToWidget( true ); table->setModel( model );