Skip to content

Commit 63634b0

Browse files
core-mastertobiasdiez
authored andcommitted
Ui preferences global modifications (#4926)
* Rework PosteOpenActions to javafx (custom entry type import) Convert dialog for importing custom entry types to CheckListView Rework threading when opening a database * rework threading stuff simplify code * rework dialog, create fxml etc fix l10n Remove obsolete code * remove dialog service argument * remove dialogService parameter * Fixes throwing an exception when 'id' field is present in bib file (#4918) * Fixes throwing an exception when 'id' field is present in bib file Fixes #4905 * Remove test for id field * Renamed ID_FIELD to INTERNAL_ID_FIELD * Removed unused import * Toggle enable status of menu items (#4872) * Toggle enable status of menu items (prototype) * Use for pushtoapplication * Improve code around push to applications * Set enable status for all actions * Fix tests and checkstyle * Refactorings, move functionality of CustomEntryTypesManager to Preferences Use ObservableList instead of LIstProperty * Fix for the issue #4912 (#4916) * Fix for the issue #4912 Apostrophe character removed from KEY_ILLEGAL_CHARACTERS in BibtexKeyGenerator * Add special character to KEY_ILLEGAL_CHARACTERS ʹ added to KEY_ILLEGAL_CHARACTERS and an assertion has been added in testMakeLabelAndCheckLegalKeysAccentGrave * Preferences->General Tab : UI improvement * Preferences-> General and File tab : UI improvement * Preferences -> Network tab : UI improvement * Preferences -> Appearance tab : UI improvement * Prefenrences -> Groups tab : UI improvement * Preferences -> EntryEditors tab : separators readjustment * imports simplification for checkstyle * minors imports modifications for checkstyle constraint * minors imports modifications for checkstyle constraint
1 parent 83d652c commit 63634b0

File tree

10 files changed

+241
-141
lines changed

10 files changed

+241
-141
lines changed

src/main/java/org/jabref/gui/preferences/AdvancedTab.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.Optional;
44

5+
import javafx.geometry.Pos;
56
import javafx.scene.Node;
67
import javafx.scene.control.Button;
78
import javafx.scene.control.CheckBox;
@@ -44,7 +45,8 @@ public AdvancedTab(DialogService dialogService, JabRefPreferences prefs) {
4445
this.dialogService = dialogService;
4546
preferences = prefs;
4647
remotePreferences = prefs.getRemotePreferences();
47-
builder.setVgap(5);
48+
builder.setVgap(7);
49+
4850
useRemoteServer = new CheckBox(Localization.lang("Listen for remote operation on port") + ':');
4951
useIEEEAbrv = new CheckBox(Localization.lang("Use IEEE LaTeX abbreviations"));
5052
remoteServerPort = new TextField();
@@ -61,17 +63,15 @@ public AdvancedTab(DialogService dialogService, JabRefPreferences prefs) {
6163
builder.add(textRemote, 2, 4);
6264

6365
HBox p = new HBox();
64-
p.getChildren().add(useRemoteServer);
65-
p.getChildren().add(remoteServerPort);
66-
66+
p.setSpacing(8);
67+
p.setAlignment(Pos.CENTER_LEFT);
6768
ActionFactory factory = new ActionFactory(preferences.getKeyBindingRepository());
6869
Button help = factory.createIconButton(StandardActions.HELP, new HelpAction(HelpFile.REMOTE));
6970
help.setMaxWidth(Double.MAX_VALUE);
70-
p.getChildren().add(help);
71-
71+
p.getChildren().setAll(useRemoteServer, remoteServerPort, help);
7272
builder.add(p, 2, 6);
73-
builder.add(new Separator(), 2, 11);
7473

74+
builder.add(new Separator(), 2, 11);
7575
Label explore = new Label(Localization.lang("Search %0", "IEEEXplore"));
7676
explore.getStyleClass().add("sectionHeader");
7777
builder.add(explore, 2, 12);

src/main/java/org/jabref/gui/preferences/AppearancePrefsTab.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package org.jabref.gui.preferences;
22

3-
import javafx.geometry.Insets;
3+
import javafx.geometry.Pos;
44
import javafx.scene.Node;
55
import javafx.scene.control.CheckBox;
66
import javafx.scene.control.Label;
77
import javafx.scene.control.RadioButton;
88
import javafx.scene.control.TextField;
99
import javafx.scene.control.ToggleGroup;
10+
import javafx.scene.layout.GridPane;
1011
import javafx.scene.layout.HBox;
1112
import javafx.scene.layout.Pane;
12-
import javafx.scene.layout.VBox;
1313

1414
import org.jabref.gui.DialogService;
1515
import org.jabref.gui.util.ControlHelper;
@@ -24,10 +24,10 @@ class AppearancePrefsTab extends Pane implements PrefsTab {
2424
private final CheckBox fontTweaksLAF;
2525
private final TextField fontSize;
2626
private final CheckBox overrideFonts;
27-
private final VBox container = new VBox();
2827
private final DialogService dialogService;
2928
private final RadioButton lightTheme;
3029
private final RadioButton darkTheme;
30+
private final GridPane builder = new GridPane();
3131

3232
/**
3333
* Customization of appearance parameters.
@@ -37,14 +37,12 @@ class AppearancePrefsTab extends Pane implements PrefsTab {
3737
public AppearancePrefsTab(DialogService dialogService, JabRefPreferences prefs) {
3838
this.dialogService = dialogService;
3939
this.prefs = prefs;
40+
builder.setVgap(8);
4041

4142
overrideFonts = new CheckBox(Localization.lang("Override default font settings"));
4243
fontSize = new TextField();
4344
fontSize.setTextFormatter(ControlHelper.getIntegerTextFormatter());
4445
Label fontSizeLabel = new Label(Localization.lang("Font size:"));
45-
HBox fontSizeContainer = new HBox(fontSizeLabel, fontSize);
46-
VBox.setMargin(fontSizeContainer, new Insets(0, 0, 0, 35));
47-
fontSizeContainer.disableProperty().bind(overrideFonts.selectedProperty().not());
4846
fontTweaksLAF = new CheckBox(Localization.lang("Tweak font rendering for entry editor on Linux"));
4947

5048
ToggleGroup themeGroup = new ToggleGroup();
@@ -60,12 +58,24 @@ public AppearancePrefsTab(DialogService dialogService, JabRefPreferences prefs)
6058
darkTheme.setSelected(true);
6159
}
6260

63-
container.getChildren().addAll(overrideFonts, fontSizeContainer, fontTweaksLAF, lightTheme, darkTheme);
61+
// Font configuration
62+
HBox fontBox = new HBox();
63+
fontBox.setSpacing(10);
64+
fontBox.setAlignment(Pos.CENTER_LEFT);
65+
fontBox.getChildren().setAll(overrideFonts, fontSizeLabel, fontSize);
66+
builder.add(fontBox, 1, 2);
67+
68+
// Theme configuration
69+
HBox themeBox = new HBox();
70+
themeBox.setSpacing(10);
71+
themeBox.setAlignment(Pos.CENTER_LEFT);
72+
themeBox.getChildren().setAll(lightTheme, darkTheme);
73+
builder.add(themeBox, 1, 4);
6474
}
6575

6676
@Override
6777
public Node getBuilder() {
68-
return container;
78+
return builder;
6979
}
7080

7181
@Override

src/main/java/org/jabref/gui/preferences/EntryEditorPrefsTab.java

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class EntryEditorPrefsTab extends Pane implements PrefsTab {
5050
public EntryEditorPrefsTab(JabRefPreferences prefs) {
5151
this.prefs = prefs;
5252
autoCompletePreferences = prefs.getAutoCompletePreferences();
53+
builder.setVgap(7);
5354

5455
autoOpenForm = new CheckBox(Localization.lang("Open editor when a new entry is created"));
5556
defSource = new CheckBox(Localization.lang("Show BibTeX source by default"));
@@ -82,10 +83,12 @@ public EntryEditorPrefsTab(JabRefPreferences prefs) {
8283
// autoCompFields text field:
8384
autoComplete.setOnAction(event -> setAutoCompleteElementsEnabled(autoComplete.isSelected()));
8485

86+
// Editor options title
8587
Label editorOptions = new Label(Localization.lang("Editor options"));
8688
editorOptions.getStyleClass().add("sectionHeader");
8789
builder.add(editorOptions, 1, 1);
88-
builder.add(new Separator(), 2, 1);
90+
91+
// Editor options configuration
8992
builder.add(autoOpenForm, 1, 2);
9093
builder.add(defSource, 1, 3);
9194
builder.add(emacsMode, 1, 4);
@@ -96,49 +99,67 @@ public EntryEditorPrefsTab(JabRefPreferences prefs) {
9699
builder.add(validation, 1, 9);
97100
builder.add(new Label(""), 1, 10);
98101

102+
builder.add(new Separator(), 1, 13);
103+
104+
// Autocompletion options title
99105
Label autocompletionOptions = new Label(Localization.lang("Autocompletion options"));
100106
autocompletionOptions.getStyleClass().add("sectionHeader");
101-
builder.add(autocompletionOptions, 1, 10);
102-
builder.add(autoComplete, 1, 11);
107+
builder.add(autocompletionOptions, 1, 15);
108+
builder.add(autoComplete, 1, 16);
103109

104110
Label useFields = new Label(" " + Localization.lang("Use autocompletion for the following fields") + ":");
105-
builder.add(useFields, 1, 12);
106-
builder.add(autoCompFields, 2, 12);
107-
builder.add(new Label(""), 1, 13);
111+
builder.add(useFields, 1, 17);
112+
builder.add(autoCompFields, 2, 17);
113+
builder.add(new Label(""), 1, 18);
108114

115+
builder.add(new Separator(), 1, 21);
116+
117+
// Name format title
109118
Label nameFormat = new Label(Localization.lang("Name format used for autocompletion"));
110119
nameFormat.getStyleClass().add("sectionHeader");
120+
builder.add(nameFormat, 1, 23);
121+
122+
// Name format configuration
111123
final ToggleGroup autocompletionToggleGroup = new ToggleGroup();
112-
builder.add(nameFormat, 1, 14);
113-
builder.add(autoCompFF, 1, 15);
114-
builder.add(autoCompLF, 1, 16);
115-
builder.add(autoCompBoth, 1, 17);
124+
builder.add(autoCompFF, 1, 24);
125+
builder.add(autoCompLF, 1, 25);
126+
builder.add(autoCompBoth, 1, 26);
116127
autoCompFF.setToggleGroup(autocompletionToggleGroup);
117128
autoCompLF.setToggleGroup(autocompletionToggleGroup);
118129
autoCompBoth.setToggleGroup(autocompletionToggleGroup);
119-
builder.add(new Label(""), 1, 18);
130+
builder.add(new Label(""), 1, 27);
120131

132+
builder.add(new Separator(), 1, 30);
133+
134+
// Treatement of first names title
121135
Label treatment = new Label(Localization.lang("Treatment of first names"));
122136
treatment.getStyleClass().add("sectionHeader");
137+
builder.add(treatment, 1, 32);
138+
139+
// Treatment of first names configuration
123140
final ToggleGroup treatmentOfFirstNamesToggleGroup = new ToggleGroup();
124-
builder.add(treatment, 1, 19);
125-
builder.add(firstNameModeAbbr, 1, 20);
126-
builder.add(firstNameModeFull, 1, 21);
127-
builder.add(firstNameModeBoth, 1, 22);
141+
builder.add(firstNameModeAbbr, 1, 33);
142+
builder.add(firstNameModeFull, 1, 34);
143+
builder.add(firstNameModeBoth, 1, 35);
128144
firstNameModeAbbr.setToggleGroup(treatmentOfFirstNamesToggleGroup);
129145
firstNameModeFull.setToggleGroup(treatmentOfFirstNamesToggleGroup);
130146
firstNameModeBoth.setToggleGroup(treatmentOfFirstNamesToggleGroup);
131147

132-
final ToggleGroup group = new ToggleGroup();
148+
builder.add(new Separator(), 1, 38);
149+
150+
// Default drag & drop title
133151
Label linkFileOptions = new Label(Localization.lang("Default drag & drop action"));
134152
linkFileOptions.getStyleClass().add("sectionHeader");
153+
builder.add(linkFileOptions, 1, 40);
154+
155+
// Default drag & drop configuration
156+
final ToggleGroup group = new ToggleGroup();
135157
copyFile = new RadioButton(Localization.lang("Copy file to default file folder"));
136158
linkFile = new RadioButton(Localization.lang("Link file (without copying)"));
137159
renameCopyFile = new RadioButton(Localization.lang("Copy, rename and link file"));
138-
builder.add(linkFileOptions, 1, 23);
139-
builder.add(copyFile, 1, 24);
140-
builder.add(linkFile, 1, 25);
141-
builder.add(renameCopyFile, 1, 26);
160+
builder.add(copyFile, 1, 41);
161+
builder.add(linkFile, 1, 42);
162+
builder.add(renameCopyFile, 1, 43);
142163
copyFile.setToggleGroup(group);
143164
linkFile.setToggleGroup(group);
144165
renameCopyFile.setToggleGroup(group);

src/main/java/org/jabref/gui/preferences/ExternalTab.java

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package org.jabref.gui.preferences;
22

3+
import javafx.geometry.Pos;
34
import javafx.scene.Node;
45
import javafx.scene.control.Button;
56
import javafx.scene.control.CheckBox;
67
import javafx.scene.control.Label;
78
import javafx.scene.control.RadioButton;
9+
import javafx.scene.control.Separator;
810
import javafx.scene.control.TextField;
911
import javafx.scene.control.ToggleGroup;
1012
import javafx.scene.layout.GridPane;
13+
import javafx.scene.layout.HBox;
1114

1215
import org.jabref.Globals;
1316
import org.jabref.gui.DialogService;
@@ -52,6 +55,8 @@ class ExternalTab implements PrefsTab {
5255
public ExternalTab(JabRefFrame frame, PreferencesDialog prefsDiag, JabRefPreferences prefs) {
5356
this.prefs = prefs;
5457
dialogService = frame.getDialogService();
58+
builder.setVgap(7);
59+
5560
Button editFileTypes = new Button(Localization.lang("Manage external file types"));
5661
citeCommand = new TextField();
5762
editFileTypes.setOnAction(e -> new EditExternalFileTypesAction().execute());
@@ -118,53 +123,71 @@ public ExternalTab(JabRefFrame frame, PreferencesDialog prefsDiag, JabRefPrefere
118123
pdfOptionPanel.add(browseSumatraReader, 3, 2);
119124
}
120125

126+
// Sending of emails title
121127
Label sendingOfEmails = new Label(Localization.lang("Sending of emails"));
122128
sendingOfEmails.getStyleClass().add("sectionHeader");
123129
builder.add(sendingOfEmails, 1, 1);
130+
131+
// Sending of emails configuration
132+
HBox sendRefMailBox = new HBox();
133+
sendRefMailBox.setSpacing(8);
134+
sendRefMailBox.setAlignment(Pos.CENTER_LEFT);
124135
Label subject = new Label(Localization.lang("Subject for sending an email with references").concat(":"));
125136
builder.add(subject, 1, 2);
126-
emailSubject = new TextField();
127-
builder.add(emailSubject, 2, 2);
128137
openFoldersOfAttachedFiles = new CheckBox(Localization.lang("Automatically open folders of attached files"));
129-
builder.add(openFoldersOfAttachedFiles, 1, 3);
138+
emailSubject = new TextField();
139+
sendRefMailBox.getChildren().setAll(openFoldersOfAttachedFiles, emailSubject);
140+
builder.add(sendRefMailBox, 1, 3);
141+
142+
builder.add(new Separator(), 1, 7);
130143

131-
builder.add(new Label(""), 1, 4);
144+
// External programs title
132145
Label externalPrograms = new Label(Localization.lang("External programs"));
133146
externalPrograms.getStyleClass().add("sectionHeader");
134-
builder.add(externalPrograms, 1, 5);
147+
builder.add(externalPrograms, 1, 9);
135148

136149
GridPane butpan = new GridPane();
137150
int index = 0;
138151
for (PushToApplication pushToApplication : frame.getPushApplications().getApplications()) {
139152
addSettingsButton(pushToApplication, butpan, index);
140153
index++;
141154
}
155+
builder.add(butpan, 1, 10);
142156

143-
builder.add(butpan, 1, 6);
144-
157+
// Cite command configuration
158+
HBox citeCommandBox = new HBox();
159+
citeCommandBox.setSpacing(10);
160+
citeCommandBox.setAlignment(Pos.CENTER_LEFT);
145161
Label citeCommandLabel = new Label(Localization.lang("Cite command") + ':');
146-
builder.add(citeCommandLabel, 1, 7);
147-
builder.add(citeCommand, 2, 7);
148-
builder.add(editFileTypes, 1, 8);
149-
builder.add(new Label(""), 1, 9);
162+
citeCommandBox.getChildren().setAll(citeCommandLabel, citeCommand, editFileTypes);
163+
builder.add(citeCommandBox, 1, 12);
164+
165+
builder.add(new Separator(), 1, 16);
166+
167+
// Open console title
150168
Label openConsole = new Label(Localization.lang("Open console"));
151169
openConsole.getStyleClass().add("sectionHeader");
152-
builder.add(openConsole, 1, 10);
170+
builder.add(openConsole, 1, 18);
153171

154-
builder.add(consoleOptionPanel, 1, 11);
155-
builder.add(new Label(""), 1, 12);
172+
builder.add(consoleOptionPanel, 1, 21);
156173

174+
builder.add(new Separator(), 1, 25);
175+
176+
// Open PDF title
157177
Label openPdf = new Label(Localization.lang("Open PDF"));
158178
openPdf.getStyleClass().add("sectionHeader");
159-
builder.add(openPdf, 1, 12);
179+
builder.add(openPdf, 1, 27);
180+
181+
builder.add(pdfOptionPanel, 1, 29);
160182

161-
builder.add(pdfOptionPanel, 1, 13);
183+
builder.add(new Separator(), 1, 33);
162184

185+
// Open file browser title
163186
Label openFileBrowser = new Label(Localization.lang("Open File Browser"));
164187
openFileBrowser.getStyleClass().add("sectionHeader");
165-
builder.add(openFileBrowser, 1, 14);
188+
builder.add(openFileBrowser, 1, 35);
166189

167-
builder.add(fileBrowserOptionPanel, 1, 15);
190+
builder.add(fileBrowserOptionPanel, 1, 36);
168191

169192
}
170193

0 commit comments

Comments
 (0)