From ec296d8c4cd4736367c14066447d3fe4b67d79cf Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 21 Mar 2018 12:12:33 +0000 Subject: [PATCH] Projucer: Removed a hardcoded String in the logic for resizing PropertyComponents in PropertyGroupComponent --- .../Project/UI/jucer_ContentViewComponents.h | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/extras/Projucer/Source/Project/UI/jucer_ContentViewComponents.h b/extras/Projucer/Source/Project/UI/jucer_ContentViewComponents.h index f56974c96d..8a250c8fb3 100644 --- a/extras/Projucer/Source/Project/UI/jucer_ContentViewComponents.h +++ b/extras/Projucer/Source/Project/UI/jucer_ContentViewComponents.h @@ -294,7 +294,8 @@ public: pp->setBounds (40, height, width - 50, propertyHeight); - resizePropertyComponent (pp); + if (shouldResizePropertyComponent (pp)) + resizePropertyComponent (pp); height += pp->getHeight() + 10; } @@ -318,24 +319,28 @@ public: descriptionLayout.draw (g, textArea); } - int getHeightMultiplier (PropertyComponent* pp) - { - auto availableTextWidth = ProjucerLookAndFeel::getTextWidthForPropertyComponent (pp); + OwnedArray properties; - auto font = ProjucerLookAndFeel::getPropertyComponentFont(); - auto nameWidth = font.getStringWidthFloat (pp->getName()); +private: + OwnedArray infoButtons; + ContentViewHeader header; + AttributedString description; + TextLayout descriptionLayout; + int headerSize = 40; - if (availableTextWidth == 0) - return 0; + //============================================================================== + bool shouldResizePropertyComponent (PropertyComponent* p) + { + if (auto* textComp = dynamic_cast (p)) + return ! textComp->isTextEditorMultiLine(); - return static_cast (nameWidth / availableTextWidth); + return (dynamic_cast (p) != nullptr + || dynamic_cast (p) != nullptr + || dynamic_cast (p) != nullptr); } void resizePropertyComponent (PropertyComponent* pp) { - if (pp->getName() == "Dependencies") - return; - for (auto i = pp->getNumChildComponents() - 1; i >= 0; --i) { auto* child = pp->getChildComponent (i); @@ -345,14 +350,19 @@ public: } } - OwnedArray properties; + int getHeightMultiplier (PropertyComponent* pp) + { + auto availableTextWidth = ProjucerLookAndFeel::getTextWidthForPropertyComponent (pp); -private: - OwnedArray infoButtons; - ContentViewHeader header; - AttributedString description; - TextLayout descriptionLayout; - int headerSize = 40; + auto font = ProjucerLookAndFeel::getPropertyComponentFont(); + auto nameWidth = font.getStringWidthFloat (pp->getName()); + + if (availableTextWidth == 0) + return 0; + return static_cast (nameWidth / availableTextWidth); + } + + //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PropertyGroupComponent) };