Handle pro features in menu

This commit is contained in:
crschnick 2023-12-18 06:14:55 +00:00
parent 32468d1d18
commit 4fda66e7db
3 changed files with 17 additions and 8 deletions

View file

@ -20,10 +20,7 @@ import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreColor;
import io.xpipe.app.update.XPipeDistributionType;
import io.xpipe.app.util.DataStoreFormatter;
import io.xpipe.app.util.DesktopHelper;
import io.xpipe.app.util.DesktopShortcuts;
import io.xpipe.app.util.ThreadHelper;
import io.xpipe.app.util.*;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableDoubleValue;
@ -273,12 +270,24 @@ public abstract class StoreEntryComp extends SimpleComp {
var item = actionProvider.canLinkTo()
? new Menu(null, new FontIcon(icon))
: new MenuItem(null, new FontIcon(icon));
var proRequired = p.getKey().getProFeatureId() != null &&
!LicenseProvider.get().getFeature(p.getKey().getProFeatureId()).isSupported();
if (proRequired) {
item.setDisable(true);
item.setGraphic(new FontIcon("mdi2p-professional-hexagon"));
}
Menu menu = actionProvider.canLinkTo() ? (Menu) item : null;
item.setOnAction(event -> {
if (menu != null && !event.getTarget().equals(menu)) {
return;
}
if (menu.isDisable()) {
return;
}
contextMenu.hide();
ThreadHelper.runFailableAsync(() -> {
var action = actionProvider.createAction(

View file

@ -59,6 +59,10 @@ public interface ActionProvider {
return true;
}
default String getProFeatureId() {
return null;
}
interface LauncherCallSite {
String getId();

View file

@ -38,10 +38,6 @@ public class AskpassAlert {
alert.setHeaderText(prompt);
alert.setAlertType(Alert.AlertType.CONFIRMATION);
// alert.getDialogPane().getScene().getWindow().setOnShown(event -> {
// ((Stage) alert.getDialogPane().getScene().getWindow()).setAlwaysOnTop(true);
// });
var text = new SecretFieldComp(prop).createRegion();
alert.getDialogPane().setContent(new StackPane(text));