Skip to content

Commit 267519f

Browse files
author
Martin Plieske
committed
did changerequests
1 parent 15de11a commit 267519f

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

src/main/java/de/doubleslash/keeptime/view/ChangeWithTimeDialog.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class ChangeWithTimeDialog {
2424

2525
private static final Logger LOG = LoggerFactory.getLogger(ChangeWithTimeDialog.class);
2626
private static final String TIME_ZERO = "00:00:00";
27+
private static final int BIG_SLIDER_STEP = 5;
2728

2829
private LongProperty activeWorkSecondsProperty;
2930
private Model model;
@@ -56,8 +57,6 @@ public void setUpDialog(final Project p) {
5657
grid.add(new Label("Minutes to transfer"), 0, gridRow);
5758
final Slider slider = setUpSliderChangeWithTimeMenuItem(activeWorkSecondsProperty);
5859

59-
okButton.setOnKeyPressed(ke -> slider.requestFocus());
60-
6160
grid.add(slider, 1, gridRow);
6261
final Label minutesToTransferLabel = new Label("999 minute(s)");
6362
grid.add(minutesToTransferLabel, 2, gridRow);
@@ -78,7 +77,6 @@ public void setUpDialog(final Project p) {
7877
grid.add(new Label("New project duration: " + p.getName()), 0, gridRow);
7978
final Label newProjectTimeLabel = new Label(TIME_ZERO);
8079
grid.add(newProjectTimeLabel, 1, gridRow);
81-
gridRow++;
8280

8381
final Runnable updateLabelsRunnable = () -> {
8482
final long minutesOffset = slider.valueProperty().longValue();
@@ -96,6 +94,13 @@ public void setUpDialog(final Project p) {
9694
slider.valueProperty().addListener((obs, oldValue, newValue) -> updateLabelsRunnable.run());
9795
vBox.getChildren().add(grid);
9896

97+
// hack to get focus on slider (doesn't work with dialog.setOnShowing(...) or dialog.setOnShown(...))
98+
okButton.setOnKeyPressed(keyEvent -> {
99+
if ((keyEvent.getCode() == KeyCode.LEFT || keyEvent.getCode() == KeyCode.RIGHT) && !slider.isFocused()) {
100+
slider.requestFocus();
101+
}
102+
});
103+
99104
dialog.getDialogPane().setContent(vBox);
100105

101106
dialog.setResultConverter(dialogButton -> {
@@ -143,6 +148,7 @@ private Slider setUpSliderChangeWithTimeMenuItem(final LongProperty activeWorkSe
143148
slider.setSnapToTicks(true);
144149
slider.setFocusTraversable(true);
145150

151+
// allows you to make bigger steps with arrow keys on slider if ctrl is pressed
146152
slider.setOnKeyPressed(ke -> {
147153
if (!slider.isFocused()) {
148154
slider.requestFocus();
@@ -153,11 +159,11 @@ private Slider setUpSliderChangeWithTimeMenuItem(final LongProperty activeWorkSe
153159
}
154160

155161
if (ke.getCode() == KeyCode.LEFT && ctrlIsPressed) {
156-
slider.adjustValue(slider.getValue() - 5);
162+
slider.adjustValue(slider.getValue() - BIG_SLIDER_STEP);
157163
}
158164

159165
if (ke.getCode() == KeyCode.RIGHT && ctrlIsPressed) {
160-
slider.adjustValue(slider.getValue() + 5);
166+
slider.adjustValue(slider.getValue() + BIG_SLIDER_STEP);
161167
}
162168

163169
});

src/main/java/de/doubleslash/keeptime/view/SettingsController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ public void setControllerAndModel(final Controller controller, final Model model
215215
}
216216

217217
void update() {
218+
// needed to close stage on esc
218219
settingsRoot.requestFocus();
219220

220221
hoverBackgroundColor.setValue(model.hoverBackgroundColor.get());

src/main/java/de/doubleslash/keeptime/view/ViewController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ private void loadSubStages() {
463463
reportStage.setScene(reportScene);
464464
reportStage.setTitle("Report");
465465
reportStage.setResizable(false);
466-
reportStage.setOnHiding(we -> this.mainStage.setAlwaysOnTop(true));
466+
reportStage.setOnHiding(windowEvent -> this.mainStage.setAlwaysOnTop(true));
467467

468468
// Settings stage
469469
final FXMLLoader fxmlLoader2 = createFXMLLoader(RESOURCE.FXML_SETTINGS);
@@ -558,8 +558,11 @@ private Node addProjectToProjectList(final Project p) {
558558
changeWithTimeDialog.setModel(model);
559559
changeWithTimeDialog.setActiveWorkSecondsProperty(activeWorkSecondsProperty);
560560
changeWithTimeDialog.setUpDialog(p);
561+
562+
mainStage.setAlwaysOnTop(false);
561563
final Optional<Integer> result = changeWithTimeDialog.show();
562564
result.ifPresent(minusSeconds -> changeProject(p, minusSeconds));
565+
mainStage.setAlwaysOnTop(true);
563566
});
564567
final MenuItem deleteMenuItem = new MenuItem("Delete");
565568
deleteMenuItem.setDisable(p.isDefault());

0 commit comments

Comments
 (0)