Skip to content

Commit 77b4964

Browse files
committed
provide checkbox to disable Twig file icon decoration Haehnchen#1485
1 parent 19ffb77 commit 77b4964

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

src/main/java/fr/adrienbrault/idea/symfony2plugin/Settings.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import fr.adrienbrault.idea.symfony2plugin.dic.ContainerFile;
1212
import fr.adrienbrault.idea.symfony2plugin.routing.dict.RoutingFile;
1313
import fr.adrienbrault.idea.symfony2plugin.templating.path.TwigNamespaceSetting;
14+
import org.jetbrains.annotations.NotNull;
1415
import org.jetbrains.annotations.Nullable;
1516

1617
import java.util.ArrayList;
@@ -55,6 +56,7 @@ public class Settings implements PersistentStateComponent<Settings> {
5556
public boolean codeFoldingTwigRoute = true;
5657
public boolean codeFoldingTwigTemplate = true;
5758
public boolean codeFoldingTwigConstant = true;
59+
public boolean featureTwigIcon = true;
5860

5961
public boolean twigBundleNamespaceSupport = true;
6062

@@ -103,7 +105,7 @@ public Settings getState() {
103105
}
104106

105107
@Override
106-
public void loadState(Settings settings) {
108+
public void loadState(@NotNull Settings settings) {
107109
XmlSerializerUtil.copyBean(settings, this);
108110
}
109111
}

src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.form

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
<rowspec value="center:max(d;4px):noGrow"/>
3333
<rowspec value="top:4dlu:noGrow"/>
3434
<rowspec value="center:max(d;4px):noGrow"/>
35+
<rowspec value="top:4dlu:noGrow"/>
36+
<rowspec value="center:max(d;4px):noGrow"/>
37+
<rowspec value="top:4dlu:noGrow"/>
38+
<rowspec value="center:max(d;4px):noGrow"/>
3539
<colspec value="fill:max(d;4px):noGrow"/>
3640
<colspec value="left:4dlu:noGrow"/>
3741
<colspec value="fill:d:grow"/>
@@ -207,6 +211,25 @@
207211
<text value="Download remote files (exp.)"/>
208212
</properties>
209213
</component>
214+
<component id="24207" class="javax.swing.JLabel">
215+
<constraints>
216+
<grid row="24" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
217+
<forms/>
218+
</constraints>
219+
<properties>
220+
<text value="Custom Features"/>
221+
</properties>
222+
</component>
223+
<component id="bcf9" class="javax.swing.JCheckBox" binding="featureTwigIcon">
224+
<constraints>
225+
<grid row="26" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
226+
<forms/>
227+
</constraints>
228+
<properties>
229+
<text value="Twig Icon Decoration"/>
230+
<toolTipText value="Decorate Twig file icons with layer to show possible content type"/>
231+
</properties>
232+
</component>
210233
</children>
211234
</grid>
212235
<component id="2ef99" class="javax.swing.JCheckBox" binding="pluginEnabled">

src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public class SettingsForm implements Configurable {
5656

5757
private JButton buttonReindex;
5858
private JCheckBox enableSchedulerCheckBox;
59+
private JCheckBox featureTwigIcon;
5960

6061
public SettingsForm(@NotNull final Project project) {
6162
this.project = project;
@@ -116,6 +117,7 @@ public boolean isModified() {
116117
|| !codeFoldingTwigRoute.isSelected() == getSettings().codeFoldingTwigRoute
117118
|| !codeFoldingTwigTemplate.isSelected() == getSettings().codeFoldingTwigTemplate
118119
|| !codeFoldingTwigConstant.isSelected() == getSettings().codeFoldingTwigConstant
120+
|| !featureTwigIcon.isSelected() == getSettings().featureTwigIcon
119121

120122
|| !directoryToApp.getText().equals(getSettings().directoryToApp)
121123
|| !directoryToWeb.getText().equals(getSettings().directoryToWeb)
@@ -136,6 +138,7 @@ public void apply() throws ConfigurationException {
136138
getSettings().codeFoldingTwigRoute = codeFoldingTwigRoute.isSelected();
137139
getSettings().codeFoldingTwigTemplate = codeFoldingTwigTemplate.isSelected();
138140
getSettings().codeFoldingTwigConstant = codeFoldingTwigConstant.isSelected();
141+
getSettings().featureTwigIcon = featureTwigIcon.isSelected();
139142

140143
getSettings().directoryToApp = directoryToApp.getText();
141144
getSettings().directoryToWeb = directoryToWeb.getText();
@@ -167,6 +170,7 @@ private void updateUIFromSettings() {
167170
codeFoldingTwigRoute.setSelected(getSettings().codeFoldingTwigRoute);
168171
codeFoldingTwigTemplate.setSelected(getSettings().codeFoldingTwigTemplate);
169172
codeFoldingTwigConstant.setSelected(getSettings().codeFoldingTwigConstant);
173+
featureTwigIcon.setSelected(getSettings().featureTwigIcon);
170174

171175
directoryToApp.setText(getSettings().directoryToApp);
172176
directoryToWeb.setText(getSettings().directoryToWeb);

src/main/java/fr/adrienbrault/idea/symfony2plugin/twig/icon/TwigIconProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.intellij.ui.LayeredIcon;
99
import com.jetbrains.twig.TwigFile;
1010
import com.jetbrains.twig.elements.TwigExtendsTag;
11+
import fr.adrienbrault.idea.symfony2plugin.Settings;
1112
import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons;
1213
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
1314
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil;
@@ -23,7 +24,7 @@
2324
*/
2425
public class TwigIconProvider extends IconProvider {
2526
public Icon getIcon(@NotNull PsiElement element, @Iconable.IconFlags int flags) {
26-
if (!(element instanceof TwigFile) || !Symfony2ProjectComponent.isEnabled(element.getProject()) || DumbService.getInstance(element.getProject()).isDumb()) {
27+
if (!(element instanceof TwigFile) || !Settings.getInstance(element.getProject()).featureTwigIcon || !Symfony2ProjectComponent.isEnabled(element.getProject()) || DumbService.getInstance(element.getProject()).isDumb()) {
2728
return null;
2829
}
2930

0 commit comments

Comments
 (0)