@@ -97,6 +97,11 @@ String getLatestCompatibleVersionOrDefault (const var& versions)
9797 return " 0.0.0-API" + String (PLUGIN_API_VER );
9898}
9999
100+ String getDisplayVersion (const String& version)
101+ {
102+ return version.upToFirstOccurrenceOf (" -API" , false , false );
103+ }
104+
100105bool parseGatewayCatalog (PluginCatalog& catalog, String& errorMessage)
101106{
102107 const auto response = URL (pluginGatewayUrl).readEntireTextStream ();
@@ -719,7 +724,6 @@ class PluginNameCell : public Component
719724 linkButton.setURL (hasDocs ? URL (pluginInfo.docURL ) : URL ());
720725 linkButton.setFont (linkFont, false , Justification::centredLeft);
721726
722- updateColours ();
723727 resized ();
724728 repaint ();
725729 }
@@ -744,16 +748,7 @@ class PluginNameCell : public Component
744748 linkButton.changeWidthToFitText ();
745749 }
746750
747- void colourChanged () override
748- {
749- updateColours ();
750- }
751-
752751private:
753- void updateColours ()
754- {
755- linkButton.setColour (HyperlinkButton::textColourId, findColour (ThemeColours::defaultText));
756- }
757752
758753 HyperlinkButton linkButton;
759754 String displayName;
@@ -773,20 +768,26 @@ class PluginVersionCell : public Component
773768 versionMenu.setTextWhenNoChoicesAvailable (" - N/A -" );
774769 versionMenu.onChange = [this ]
775770 {
776- if (onVersionChanged != nullptr )
777- onVersionChanged (versionMenu.getText ());
771+ if (onVersionChanged == nullptr )
772+ return ;
773+
774+ const auto selectedIndex = versionMenu.getSelectedId () - 1 ;
775+
776+ if (isPositiveAndBelow (selectedIndex, versions.size ()))
777+ onVersionChanged (versions[selectedIndex]);
778778 };
779779 }
780780
781781 void update (const SelectedPluginInfo& pluginInfo,
782782 std::function<void (const String&)> callback)
783783 {
784784 onVersionChanged = std::move (callback);
785+ versions = pluginInfo.versions ;
785786
786787 versionMenu.clear (dontSendNotification);
787788
788789 for (int index = 0 ; index < pluginInfo.versions .size (); ++index)
789- versionMenu.addItem (pluginInfo.versions [index], index + 1 );
790+ versionMenu.addItem (getDisplayVersion ( pluginInfo.versions [index]) , index + 1 );
790791
791792 const auto selectedVersion = getSelectedVersionOrFallback (pluginInfo);
792793 const auto selectedIndex = pluginInfo.versions .indexOf (selectedVersion);
@@ -804,6 +805,7 @@ class PluginVersionCell : public Component
804805
805806private:
806807 ComboBox versionMenu;
808+ StringArray versions;
807809 std::function<void (const String&)> onVersionChanged;
808810};
809811
@@ -1023,10 +1025,10 @@ PluginListBoxComponent::PluginListBoxComponent()
10231025 header.addColumn (" Type" , typeColumn, 90 , 90 , 90 , TableHeaderComponent::visible);
10241026 header.addColumn (" Developers" , developersColumn, 150 , 100 , 280 , regularColumnFlags);
10251027 header.addColumn (" Updated" , updatedColumn, 90 , 90 , 90 , TableHeaderComponent::visible);
1026- header.addColumn (" Description" , descriptionColumn, 250 , 180 , -1 , regularColumnFlags);
1028+ header.addColumn (" Description" , descriptionColumn, 310 , 180 , -1 , regularColumnFlags);
10271029 header.addColumn (" Dependencies" , dependenciesColumn, 120 , 120 , 120 , TableHeaderComponent::appearsOnColumnMenu);
1028- header.addColumn (" Installed" , installedVersionColumn, 80 , 80 , 80 , TableHeaderComponent::visible);
1029- header.addColumn (" Version" , versionSelectorColumn, 120 , 120 , 220 , regularColumnFlags);
1030+ header.addColumn (" Installed" , installedVersionColumn, 60 , 60 , 60 , TableHeaderComponent::visible);
1031+ header.addColumn (" Version" , versionSelectorColumn, 80 , 80 , 120 , regularColumnFlags);
10301032 header.addColumn (" Action" , installColumn, 60 , 60 , 60 , TableHeaderComponent::visible);
10311033 header.addColumn (" Remove" , uninstallColumn, 60 , 60 , 60 , TableHeaderComponent::visible);
10321034 header.setSortColumnId (displayNameColumn, true );
@@ -1104,7 +1106,7 @@ void PluginListBoxComponent::paintCell (Graphics& g,
11041106 break ;
11051107
11061108 case installedVersionColumn:
1107- text = pluginInfo->installedVersion .isEmpty () ? " No" : pluginInfo->installedVersion ;
1109+ text = pluginInfo->installedVersion .isEmpty () ? " No" : getDisplayVersion ( pluginInfo->installedVersion ) ;
11081110 break ;
11091111
11101112 default :
@@ -1645,11 +1647,9 @@ void PluginInstallActionRunner::run()
16451647 {
16461648 LOGC (" Download Successful!" );
16471649
1648- String pluginVer = pInfo.selectedVersion .substring (0 , pInfo.selectedVersion .indexOf (" -API" ));
1649-
16501650 showAlertOnMessageThread (AlertWindow::InfoIcon,
16511651 " [Plugin Installer] " + pInfo.displayName ,
1652- pInfo.displayName + " v" + pluginVer + " Installed Successfully!" );
1652+ pInfo.displayName + " v" + getDisplayVersion (pInfo. selectedVersion ) + " Installed Successfully!" );
16531653
16541654 updateUIOnMessageThread ();
16551655 }
@@ -1689,7 +1689,7 @@ void PluginInstallActionRunner::run()
16891689
16901690 showAlertOnMessageThread (AlertWindow::WarningIcon,
16911691 " [Plugin Installer] " + pInfo.displayName ,
1692- pInfo.displayName + " v" + pInfo.selectedVersion
1692+ pInfo.displayName + " v" + getDisplayVersion ( pInfo.selectedVersion )
16931693 + " already exists. Please download another version." );
16941694 }
16951695 else if (dlReturnCode == XML_WRITE_ERR )
0 commit comments