convert rest of UISettings to smart serializable properties

This commit is contained in:
Vladimir Krivosheev
2017-02-13 15:22:44 +01:00
parent 82ec776d1a
commit 1cfe0a2ef9
8 changed files with 33 additions and 37 deletions
@@ -148,10 +148,10 @@ class UISettings : BaseState(), PersistentStateComponent<UISettings> {
@JvmField var DEFAULT_AUTOSCROLL_TO_SOURCE = false
@Transient var presentationMode = false
@JvmField var PRESENTATION_MODE_FONT_SIZE = 24
@JvmField var MARK_MODIFIED_TABS_WITH_ASTERISK = false
@JvmField var SHOW_TABS_TOOLTIPS = true
@JvmField var SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES = true
@JvmField var NAVIGATE_TO_PREVIEW = false
@get:OptionTag("MARK_MODIFIED_TABS_WITH_ASTERISK") var markModifiedTabsWithAsterisk by storedProperty(false)
@get:OptionTag("SHOW_TABS_TOOLTIPS") var showTabsTooltips by storedProperty(true)
@get:OptionTag("SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES") var showDirectoryForNonUniqueFilenames by storedProperty(true)
@get:OptionTag("NAVIGATE_TO_PREVIEW") var navigateToPreview by storedProperty(false)
private val myTreeDispatcher = ComponentTreeEventDispatcher.create(UISettingsListener::class.java)
@@ -117,14 +117,14 @@ public class EditorTabsConfigurable implements EditorOptionsProvider {
public void reset() {
UISettings uiSettings=UISettings.getInstance();
myCbModifiedTabsMarkedWithAsterisk.setSelected(uiSettings.MARK_MODIFIED_TABS_WITH_ASTERISK);
myShowTabsTooltipsCheckBox.setSelected(uiSettings.SHOW_TABS_TOOLTIPS);
myCbModifiedTabsMarkedWithAsterisk.setSelected(uiSettings.getMarkModifiedTabsWithAsterisk());
myShowTabsTooltipsCheckBox.setSelected(uiSettings.getShowTabsTooltips());
myScrollTabLayoutInEditorCheckBox.setSelected(uiSettings.getScrollTabLayoutInEditor());
myHideTabsCheckbox.setEnabled(myScrollTabLayoutInEditorCheckBox.isSelected());
myHideTabsCheckbox.setSelected(uiSettings.getHideTabsIfNeed());
myEditorTabPlacement.setSelectedItem(uiSettings.getEditorTabPlacement());
myHideKnownExtensions.setSelected(uiSettings.getHdeKnownExtensionInTabs());
myShowDirectoryInTabCheckBox.setSelected(uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES);
myShowDirectoryInTabCheckBox.setSelected(uiSettings.getShowDirectoryForNonUniqueFilenames());
myEditorTabLimitField.setText(Integer.toString(uiSettings.EDITOR_TAB_LIMIT));
myReuseNotModifiedTabsCheckBox.setSelected(uiSettings.getReuseNotModifiedTabs());
myShowCloseButtonOnCheckBox.setSelected(uiSettings.getShowCloseButton());
@@ -150,11 +150,11 @@ public class EditorTabsConfigurable implements EditorOptionsProvider {
public void apply() throws ConfigurationException {
UISettings uiSettings=UISettings.getInstance();
boolean uiSettingsChanged = uiSettings.MARK_MODIFIED_TABS_WITH_ASTERISK != myCbModifiedTabsMarkedWithAsterisk.isSelected();
uiSettings.MARK_MODIFIED_TABS_WITH_ASTERISK = myCbModifiedTabsMarkedWithAsterisk.isSelected();
boolean uiSettingsChanged = uiSettings.getMarkModifiedTabsWithAsterisk() != myCbModifiedTabsMarkedWithAsterisk.isSelected();
uiSettings.setMarkModifiedTabsWithAsterisk(myCbModifiedTabsMarkedWithAsterisk.isSelected());
if (isModified(myShowTabsTooltipsCheckBox, uiSettings.SHOW_TABS_TOOLTIPS)) uiSettingsChanged = true;
uiSettings.SHOW_TABS_TOOLTIPS = myShowTabsTooltipsCheckBox.isSelected();
if (isModified(myShowTabsTooltipsCheckBox, uiSettings.getShowTabsTooltips())) uiSettingsChanged = true;
uiSettings.setShowTabsTooltips(myShowTabsTooltipsCheckBox.isSelected());
if (isModified(myScrollTabLayoutInEditorCheckBox, uiSettings.getScrollTabLayoutInEditor())) uiSettingsChanged = true;
uiSettings.setScrollTabLayoutInEditor(myScrollTabLayoutInEditorCheckBox.isSelected());
@@ -174,8 +174,8 @@ public class EditorTabsConfigurable implements EditorOptionsProvider {
uiSettings.setHdeKnownExtensionInTabs(hide);
boolean dir = myShowDirectoryInTabCheckBox.isSelected();
if (uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES != dir) uiSettingsChanged = true;
uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES = dir;
if (uiSettings.getShowDirectoryForNonUniqueFilenames() != dir) uiSettingsChanged = true;
uiSettings.setShowDirectoryForNonUniqueFilenames(dir);
uiSettings.setCloseNonModifiedFilesFirst(myCloseNonModifiedFilesFirstRadio.isSelected());
uiSettings.setActiveMruEditorOnClose(myActivateMRUEditorOnCloseRadio.isSelected());
@@ -198,14 +198,14 @@ public class EditorTabsConfigurable implements EditorOptionsProvider {
@Override
public boolean isModified() {
final UISettings uiSettings = UISettings.getInstance();
boolean isModified = isModified(myCbModifiedTabsMarkedWithAsterisk, uiSettings.MARK_MODIFIED_TABS_WITH_ASTERISK);
isModified |= isModified(myShowTabsTooltipsCheckBox, uiSettings.SHOW_TABS_TOOLTIPS);
boolean isModified = isModified(myCbModifiedTabsMarkedWithAsterisk, uiSettings.getMarkModifiedTabsWithAsterisk());
isModified |= isModified(myShowTabsTooltipsCheckBox, uiSettings.getShowTabsTooltips());
isModified |= isModified(myEditorTabLimitField, uiSettings.EDITOR_TAB_LIMIT);
isModified |= isModified(myReuseNotModifiedTabsCheckBox, uiSettings.getReuseNotModifiedTabs());
int tabPlacement = ((Integer)myEditorTabPlacement.getSelectedItem()).intValue();
isModified |= tabPlacement != uiSettings.getEditorTabPlacement();
isModified |= myHideKnownExtensions.isSelected() != uiSettings.getHdeKnownExtensionInTabs();
isModified |= myShowDirectoryInTabCheckBox.isSelected() != uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES;
isModified |= myShowDirectoryInTabCheckBox.isSelected() != uiSettings.getShowDirectoryForNonUniqueFilenames();
isModified |= myScrollTabLayoutInEditorCheckBox.isSelected() != uiSettings.getScrollTabLayoutInEditor();
isModified |= myHideTabsCheckbox.isSelected() != uiSettings.getHideTabsIfNeed();
@@ -32,7 +32,7 @@ public class UniqueNameEditorTabTitleProvider implements EditorTabTitleProvider
@Override
public String getEditorTabTitle(Project project, VirtualFile file) {
UISettings uiSettings = UISettings.getInstanceOrNull();
if (uiSettings == null || !uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES || DumbService.isDumb(project)) {
if (uiSettings == null || !uiSettings.getShowDirectoryForNonUniqueFilenames() || DumbService.isDumb(project)) {
return null;
}
@@ -222,8 +222,8 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab
update |= settings.getRightHorizontalSplit() != myComponent.myRightLayoutCheckBox.isSelected();
settings.setRightHorizontalSplit(myComponent.myRightLayoutCheckBox.isSelected());
update |= settings.NAVIGATE_TO_PREVIEW != (myComponent.myNavigateToPreviewCheckBox.isVisible() && myComponent.myNavigateToPreviewCheckBox.isSelected());
settings.NAVIGATE_TO_PREVIEW = myComponent.myNavigateToPreviewCheckBox.isSelected();
update |= settings.getNavigateToPreview() != (myComponent.myNavigateToPreviewCheckBox.isVisible() && myComponent.myNavigateToPreviewCheckBox.isSelected());
settings.setNavigateToPreview(myComponent.myNavigateToPreviewCheckBox.isSelected());
ColorBlindness blindness = myComponent.myColorBlindnessPanel.getColorBlindness();
boolean updateEditorScheme = false;
@@ -346,7 +346,7 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab
myComponent.myWidescreenLayoutCheckBox.setSelected(settings.getWideScreenSupport());
myComponent.myLeftLayoutCheckBox.setSelected(settings.getLeftHorizontalSplit());
myComponent.myRightLayoutCheckBox.setSelected(settings.getRightHorizontalSplit());
myComponent.myNavigateToPreviewCheckBox.setSelected(settings.NAVIGATE_TO_PREVIEW);
myComponent.myNavigateToPreviewCheckBox.setSelected(settings.getNavigateToPreview());
myComponent.myNavigateToPreviewCheckBox.setVisible(false);//disabled for a while
myComponent.myColorBlindnessPanel.setColorBlindness(settings.COLOR_BLINDNESS);
myComponent.myDisableMnemonicInControlsCheckBox.setSelected(settings.DISABLE_MNEMONICS_IN_CONTROLS);
@@ -411,7 +411,7 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab
isModified |= myComponent.myWidescreenLayoutCheckBox.isSelected() != settings.getWideScreenSupport();
isModified |= myComponent.myLeftLayoutCheckBox.isSelected() != settings.getLeftHorizontalSplit();
isModified |= myComponent.myRightLayoutCheckBox.isSelected() != settings.getRightHorizontalSplit();
isModified |= myComponent.myNavigateToPreviewCheckBox.isSelected() != settings.NAVIGATE_TO_PREVIEW;
isModified |= myComponent.myNavigateToPreviewCheckBox.isSelected() != settings.getNavigateToPreview();
isModified |= myComponent.myColorBlindnessPanel.getColorBlindness() != settings.COLOR_BLINDNESS;
isModified |= myComponent.myHideIconsInQuickNavigation.isSelected() != settings.getShowIconInQuickNavigation();
@@ -856,7 +856,7 @@ public class EditorWindow {
final int index = findEditorIndex(findFileComposite(file));
if (index != -1) {
setTitleAt(index, EditorTabbedContainer.calcTabTitle(getManager().getProject(), file));
setToolTipTextAt(index, UISettings.getInstance().SHOW_TABS_TOOLTIPS
setToolTipTextAt(index, UISettings.getInstance().getShowTabsTooltips()
? getManager().getFileTooltipText(file)
: null);
}
@@ -887,9 +887,10 @@ public class EditorWindow {
}
final Icon modifiedIcon;
if (UISettings.getInstance().MARK_MODIFIED_TABS_WITH_ASTERISK || !UISettings.getInstance().getHideTabsIfNeed()) {
UISettings settings = UISettings.getInstance();
if (settings.getMarkModifiedTabsWithAsterisk() || !settings.getHideTabsIfNeed()) {
modifiedIcon =
UISettings.getInstance().MARK_MODIFIED_TABS_WITH_ASTERISK && composite != null && composite.isModified() ? MODIFIED_ICON : GAP_ICON;
settings.getMarkModifiedTabsWithAsterisk() && composite != null && composite.isModified() ? MODIFIED_ICON : GAP_ICON;
count++;
}
else {
@@ -900,7 +901,7 @@ public class EditorWindow {
int i = 0;
final LayeredIcon result = new LayeredIcon(count);
int xShift = !UISettings.getInstance().getHideTabsIfNeed() ? 4 : 0;
int xShift = !settings.getHideTabsIfNeed() ? 4 : 0;
result.setIcon(baseIcon, i++, xShift, 0);
if (pinIcon != null) result.setIcon(pinIcon, i++, xShift, 0);
if (modifiedIcon != null) result.setIcon(modifiedIcon, i++);
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -78,7 +78,7 @@ public class PreviewManagerImpl implements PreviewManager, PersistentStateCompon
private boolean myInnerSelectionChange;
private static boolean isAvailable() {
return UISettings.getInstance().NAVIGATE_TO_PREVIEW;
return UISettings.getInstance().getNavigateToPreview();
}
public PreviewManagerImpl(Project project) {
@@ -91,12 +91,7 @@ public class PreviewManagerImpl implements PreviewManager, PersistentStateCompon
Disposer.register(project, provider);
}
project.getMessageBus().connect().subscribe(UISettingsListener.TOPIC, new UISettingsListener() {
@Override
public void uiSettingsChanged(UISettings uiSettings) {
checkGlobalState();
}
});
project.getMessageBus().connect().subscribe(UISettingsListener.TOPIC, uiSettings -> checkGlobalState());
checkGlobalState();
checkEmptyState();
}
@@ -164,7 +164,7 @@ public class PyCharmEduInitialConfigurator {
uiSettings.setHideToolStripes(false);
uiSettings.setShowMemoryIndicator(false);
uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES = true;
uiSettings.setShowDirectoryForNonUniqueFilenames(true);
uiSettings.setShowMainToolbar(false);
codeInsightSettings.REFORMAT_ON_PASTE = CodeInsightSettings.NO_REFORMAT;
@@ -176,7 +176,7 @@ public class PyCharmEduInitialConfigurator {
final CodeStyleSettings settings = CodeStyleSettingsManager.getInstance().getCurrentSettings();
settings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true;
settings.getCommonSettings(PythonLanguage.getInstance()).ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true;
uiSettings.SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES = true;
uiSettings.setShowDirectoryForNonUniqueFilenames(true);
uiSettings.setShowMemoryIndicator(false);
final String ignoredFilesList = fileTypeManager.getIgnoredFilesList();
ApplicationManager.getApplication().invokeLater(() -> ApplicationManager.getApplication().runWriteAction(() -> FileTypeManager.getInstance().setIgnoredFilesList(ignoredFilesList + ";*$py.class")));
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2015 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -54,7 +54,7 @@ public class PyCharmInitialConfigurator {
final CodeStyleSettings settings = CodeStyleSettingsManager.getInstance().getCurrentSettings();
settings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true;
settings.getCommonSettings(PythonLanguage.getInstance()).ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true;
UISettings.getInstance().SHOW_DIRECTORY_FOR_NON_UNIQUE_FILENAMES = true;
UISettings.getInstance().setShowDirectoryForNonUniqueFilenames(true);
}
if (!propertiesComponent.getBoolean("PyCharm.InitialConfiguration.V3")) {
propertiesComponent.setValue("PyCharm.InitialConfiguration.V3", "true");