forked from j62/ctbrec
Add a setting for the thumbnail overview update interval
Implements #123
This commit is contained in:
parent
44b8deb27d
commit
db5b6bdf5b
|
@ -338,7 +338,8 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
|||
}
|
||||
|
||||
void initializeUpdateService() {
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
int refreshRate = Config.getInstance().getSettings().overviewUpdateIntervalInSecs;
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(refreshRate)));
|
||||
updateService.setOnSucceeded((event) -> onSuccess());
|
||||
updateService.setOnFailed((event) -> onFail(event));
|
||||
}
|
||||
|
|
|
@ -57,6 +57,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
|||
private TextField server;
|
||||
private TextField port;
|
||||
private TextField onlineCheckIntervalInSecs;
|
||||
private TextField overviewUpdateIntervalInSecs;
|
||||
private TextField leaveSpaceOnDevice;
|
||||
private TextField minimumLengthInSecs;
|
||||
private CheckBox loadResolution;
|
||||
|
@ -451,17 +452,6 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
|||
GridPane.setMargin(chooseStreamQuality, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
layout.add(chooseStreamQuality, 1, row++);
|
||||
|
||||
l = new Label("Update thumbnails");
|
||||
layout.add(l, 0, row);
|
||||
updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails);
|
||||
updateThumbnails.setOnAction((e) -> {
|
||||
Config.getInstance().getSettings().updateThumbnails = updateThumbnails.isSelected();
|
||||
saveConfig();
|
||||
});
|
||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||
GridPane.setMargin(updateThumbnails, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
layout.add(updateThumbnails, 1, row++);
|
||||
|
||||
l = new Label("Enable live previews (experimental)");
|
||||
layout.add(l, 0, row);
|
||||
livePreviews.setSelected(Config.getInstance().getSettings().livePreviews);
|
||||
|
@ -474,6 +464,40 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
|||
GridPane.setMargin(livePreviews, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
layout.add(livePreviews, 1, row++);
|
||||
|
||||
Tooltip tt = new Tooltip("The overviews will still be updated, but the thumbnails won't be changed. This is useful for less powerful systems.");
|
||||
l = new Label("Update thumbnails");
|
||||
l.setTooltip(tt);
|
||||
layout.add(l, 0, row);
|
||||
updateThumbnails.setTooltip(tt);
|
||||
updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails);
|
||||
updateThumbnails.setOnAction((e) -> {
|
||||
Config.getInstance().getSettings().updateThumbnails = updateThumbnails.isSelected();
|
||||
saveConfig();
|
||||
});
|
||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||
GridPane.setMargin(updateThumbnails, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
layout.add(updateThumbnails, 1, row++);
|
||||
|
||||
tt = new Tooltip("Update the thumbnail overviews every x seconds");
|
||||
l = new Label("Update overview interval (seconds)");
|
||||
l.setTooltip(tt);
|
||||
layout.add(l, 0, row);
|
||||
overviewUpdateIntervalInSecs = new TextField(Integer.toString(Config.getInstance().getSettings().overviewUpdateIntervalInSecs));
|
||||
overviewUpdateIntervalInSecs.setTooltip(tt);
|
||||
overviewUpdateIntervalInSecs.textProperty().addListener((observable, oldValue, newValue) -> {
|
||||
if (!newValue.matches("\\d*")) {
|
||||
overviewUpdateIntervalInSecs.setText(newValue.replaceAll("[^\\d]", ""));
|
||||
}
|
||||
if(!overviewUpdateIntervalInSecs.getText().isEmpty()) {
|
||||
Config.getInstance().getSettings().overviewUpdateIntervalInSecs = Integer.parseInt(overviewUpdateIntervalInSecs.getText());
|
||||
saveConfig();
|
||||
showRestartRequired();
|
||||
}
|
||||
});
|
||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||
GridPane.setMargin(overviewUpdateIntervalInSecs, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
layout.add(overviewUpdateIntervalInSecs, 1, row++);
|
||||
|
||||
l = new Label("Start Tab");
|
||||
layout.add(l, 0, row);
|
||||
startTab = new ComboBox<>();
|
||||
|
@ -482,15 +506,16 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
|||
saveConfig();
|
||||
});
|
||||
layout.add(startTab, 1, row++);
|
||||
GridPane.setMargin(l, new Insets(3, 0, 0, 0));
|
||||
GridPane.setMargin(startTab, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
GridPane.setMargin(l, new Insets(0, 0, 0, 0));
|
||||
GridPane.setMargin(startTab, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
||||
overviewUpdateIntervalInSecs.maxWidthProperty().bind(startTab.widthProperty());
|
||||
|
||||
l = new Label("Colors (Base / Accent)");
|
||||
layout.add(l, 0, row);
|
||||
ColorSettingsPane colorSettingsPane = new ColorSettingsPane(this);
|
||||
layout.add(colorSettingsPane, 1, row++);
|
||||
GridPane.setMargin(l, new Insets(0, 0, 0, 0));
|
||||
GridPane.setMargin(colorSettingsPane, new Insets(CHECKBOX_MARGIN, 0, 0, CHECKBOX_MARGIN));
|
||||
GridPane.setMargin(colorSettingsPane, new Insets(0, 0, 0, CHECKBOX_MARGIN));
|
||||
|
||||
TitledPane general = new TitledPane("General", layout);
|
||||
general.setCollapsible(false);
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package ctbrec.ui.sites.myfreecams;
|
||||
import static ctbrec.ui.sites.myfreecams.FriendsUpdateService.Mode.*;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import ctbrec.sites.mfc.MyFreeCams;
|
||||
import ctbrec.ui.FollowedTab;
|
||||
import ctbrec.ui.ThumbOverviewTab;
|
||||
|
@ -13,12 +11,10 @@ import javafx.scene.control.ToggleGroup;
|
|||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.util.Duration;
|
||||
|
||||
public class MyFreeCamsFriendsTab extends ThumbOverviewTab implements FollowedTab {
|
||||
public MyFreeCamsFriendsTab(MyFreeCams mfc) {
|
||||
super("Friends", new FriendsUpdateService(mfc), mfc);
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,7 +2,6 @@ package ctbrec.ui.sites.myfreecams;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import ctbrec.recorder.Recorder;
|
||||
import ctbrec.sites.mfc.MyFreeCams;
|
||||
|
@ -11,7 +10,6 @@ import ctbrec.ui.TabProvider;
|
|||
import ctbrec.ui.ThumbOverviewTab;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.util.Duration;
|
||||
|
||||
public class MyFreeCamsTabProvider extends TabProvider {
|
||||
private Recorder recorder;
|
||||
|
@ -30,7 +28,6 @@ public class MyFreeCamsTabProvider extends TabProvider {
|
|||
PaginatedScheduledService updateService = new OnlineCamsUpdateService();
|
||||
ThumbOverviewTab online = new ThumbOverviewTab("Online", updateService, myFreeCams);
|
||||
online.setRecorder(recorder);
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
tabs.add(online);
|
||||
|
||||
friends = new MyFreeCamsFriendsTab(myFreeCams);
|
||||
|
@ -40,13 +37,11 @@ public class MyFreeCamsTabProvider extends TabProvider {
|
|||
updateService = new HDCamsUpdateService();
|
||||
ThumbOverviewTab hd = new ThumbOverviewTab("HD", updateService, myFreeCams);
|
||||
hd.setRecorder(recorder);
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
tabs.add(hd);
|
||||
|
||||
updateService = new PopularModelService();
|
||||
ThumbOverviewTab pop = new ThumbOverviewTab("Most Popular", updateService, myFreeCams);
|
||||
pop.setRecorder(recorder);
|
||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
|
||||
tabs.add(pop);
|
||||
|
||||
MyFreeCamsTableTab table = new MyFreeCamsTableTab(myFreeCams);
|
||||
|
|
|
@ -92,6 +92,7 @@ public class Settings {
|
|||
public String colorBase = "#FFFFFF";
|
||||
public String colorAccent = "#FFFFFF";
|
||||
public int onlineCheckIntervalInSecs = 60;
|
||||
public int overviewUpdateIntervalInSecs = 10;
|
||||
public String recordedModelsSortColumn = "";
|
||||
public String recordedModelsSortType = "";
|
||||
public double[] recordedModelsColumnWidths = new double[0];
|
||||
|
|
Loading…
Reference in New Issue