mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-09-19 22:01:12 +00:00
Handle pro features in menu
This commit is contained in:
parent
32468d1d18
commit
4fda66e7db
|
@ -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(
|
||||
|
|
|
@ -59,6 +59,10 @@ public interface ActionProvider {
|
|||
return true;
|
||||
}
|
||||
|
||||
default String getProFeatureId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
interface LauncherCallSite {
|
||||
|
||||
String getId();
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
Loading…
Reference in a new issue