forked from j62/ctbrec
1
0
Fork 0

Add a setting for the thumbnail overview update interval

Implements #123
This commit is contained in:
0xboobface 2018-12-19 13:37:31 +01:00
parent 44b8deb27d
commit db5b6bdf5b
5 changed files with 42 additions and 24 deletions

View File

@ -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));
}

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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];