mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
[platform] provide a way to specify a URL for "Keyboard Shortcuts PDF" action in ExternalProductResourceUrls (IJPL-204)
IntelliJ IDEA has been migrated to use the new property. GitOrigin-RevId: 1a43dcfa89dfd8e9954bb611790136c224a58bd3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6e8b44548e
commit
9711ba4167
@@ -18,8 +18,6 @@
|
||||
<help webhelp-url="https://www.jetbrains.com/help/idea/"/>
|
||||
<documentation url="https://www.jetbrains.com/idea/resources/"/>
|
||||
<whatsnew url="https://www.jetbrains.com/idea/whatsnew/" show-on-update="true"/>
|
||||
<keymap win="https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf"
|
||||
mac="https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf"/>
|
||||
|
||||
<statistics settings="https://www.jetbrains.com/idea/statistics/stat-assistant.xml"
|
||||
service="https://www.jetbrains.com/idea/statistics/index.jsp"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.idea.customization.base
|
||||
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import com.intellij.platform.ide.impl.customization.BaseJetBrainsExternalProductResourceUrls
|
||||
import com.intellij.platform.ide.impl.customization.ZenDeskFeedbackFormData
|
||||
import com.intellij.platform.ide.impl.customization.ZenDeskFeedbackFormFieldIds
|
||||
@@ -41,4 +42,10 @@ class IntelliJIdeaExternalResourceUrls : BaseJetBrainsExternalProductResourceUrl
|
||||
|
||||
override val youTubeChannelUrl: Url
|
||||
get() = Urls.newFromEncoded("https://www.youtube.com/user/intellijideavideo")
|
||||
|
||||
override val keyboardShortcutsPdfUrl: Url
|
||||
get() {
|
||||
val suffix = if (SystemInfo.isMac) "_Mac" else ""
|
||||
return Urls.newFromEncoded("https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard$suffix.pdf")
|
||||
}
|
||||
}
|
||||
@@ -82,9 +82,9 @@ public abstract class ApplicationInfoEx extends ApplicationInfo {
|
||||
|
||||
public abstract boolean isShowWhatsNewOnUpdate();
|
||||
|
||||
public abstract String getWinKeymapUrl();
|
||||
public abstract @Nullable String getWinKeymapUrl();
|
||||
|
||||
public abstract String getMacKeymapUrl();
|
||||
public abstract @Nullable String getMacKeymapUrl();
|
||||
|
||||
public interface UpdateUrls {
|
||||
String getCheckingUrl();
|
||||
|
||||
@@ -84,6 +84,14 @@ interface ExternalProductResourceUrls {
|
||||
*/
|
||||
val youTubeChannelUrl: Url?
|
||||
get() = null
|
||||
|
||||
/**
|
||||
* Returns URL of a PDF file describing keyboard shortcuts of the product.
|
||||
* It's opened in the browser when a user invokes the "Keyboard Shortcuts PDF" action if `help/ReferenceCard.pdf` (`help/ReferenceCardForMac.pdf`
|
||||
* for macOS) is not found.
|
||||
*/
|
||||
val keyboardShortcutsPdfUrl: Url?
|
||||
get() = null
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,13 +6,12 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.application.ex.ApplicationInfoEx;
|
||||
import com.intellij.openapi.project.DumbAwareAction;
|
||||
import com.intellij.openapi.util.NullableLazyValue;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.vfs.DiskQueryRelay;
|
||||
import com.intellij.platform.ide.customization.ExternalProductResourceUrls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
@@ -30,7 +29,7 @@ public class RefCardAction extends DumbAwareAction implements ActionRemoteBehavi
|
||||
|
||||
@Override
|
||||
public void update(@NotNull AnActionEvent e) {
|
||||
e.getPresentation().setEnabledAndVisible(myRefCardPath.getValue() != null || getKeymapUrl() != null);
|
||||
e.getPresentation().setEnabledAndVisible(myRefCardPath.getValue() != null || ExternalProductResourceUrls.getInstance().getKeyboardShortcutsPdfUrl() != null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -40,15 +39,10 @@ public class RefCardAction extends DumbAwareAction implements ActionRemoteBehavi
|
||||
BrowserUtil.browse(file);
|
||||
}
|
||||
else {
|
||||
var url = getKeymapUrl();
|
||||
var url = ExternalProductResourceUrls.getInstance().getKeyboardShortcutsPdfUrl();
|
||||
if (url != null) {
|
||||
BrowserUtil.browse(url);
|
||||
BrowserUtil.browse(url.toExternalForm());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static @Nullable String getKeymapUrl() {
|
||||
var appInfo = ApplicationInfoEx.getInstanceEx();
|
||||
return SystemInfo.isMac ? appInfo.getMacKeymapUrl() : appInfo.getWinKeymapUrl();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.openapi.application.ApplicationInfo
|
||||
import com.intellij.openapi.application.ex.ApplicationInfoEx
|
||||
import com.intellij.openapi.updateSettings.impl.UpdateRequestParameters
|
||||
import com.intellij.openapi.util.BuildNumber
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import com.intellij.platform.ide.customization.ExternalProductResourceUrls
|
||||
import com.intellij.platform.ide.customization.FeedbackReporter
|
||||
import com.intellij.ui.LicensingFacade
|
||||
@@ -73,4 +74,11 @@ class LegacyExternalProductResourceUrls : ExternalProductResourceUrls {
|
||||
|
||||
override val youTubeChannelUrl: Url?
|
||||
get() = ApplicationInfoEx.getInstanceEx().jetBrainsTvUrl?.let { Urls.newFromEncoded(it) }
|
||||
|
||||
override val keyboardShortcutsPdfUrl: Url?
|
||||
get() {
|
||||
val appInfo = ApplicationInfoEx.getInstanceEx()
|
||||
val url = if (SystemInfo.isMac) appInfo.getMacKeymapUrl() else appInfo.getWinKeymapUrl()
|
||||
return url?.let { Urls.newFromEncoded(url) }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user