| 822 | } |
| 823 | |
| 824 | void step() override { |
| 825 | disabled = false; |
| 826 | |
| 827 | if (library::isSyncing) |
| 828 | disabled = true; |
| 829 | |
| 830 | auto it = library::updateInfos.find(slug); |
| 831 | if (it == library::updateInfos.end()) { |
| 832 | disabled = true; |
| 833 | } |
| 834 | else { |
| 835 | library::UpdateInfo update = it->second; |
| 836 | |
| 837 | if (update.minRackVersion != "") |
| 838 | disabled = true; |
| 839 | |
| 840 | if (update.downloaded) { |
| 841 | rightText = CHECKMARK_STRING; |
| 842 | disabled = true; |
| 843 | } |
| 844 | else if (slug == library::updateSlug) { |
| 845 | rightText = string::f("%.0f%%", library::updateProgress * 100.f); |
| 846 | } |
| 847 | else { |
| 848 | rightText = ""; |
| 849 | plugin::Plugin* p = plugin::getPlugin(slug); |
| 850 | if (p) { |
| 851 | rightText += p->version + " → "; |
| 852 | } |
| 853 | rightText += update.version; |
| 854 | } |
| 855 | } |
| 856 | |
| 857 | MenuItem::step(); |
| 858 | } |
| 859 | |
| 860 | void onAction(const ActionEvent& e) override { |
| 861 | std::thread t([=] { |