forked from j62/ctbrec
Add setting to show total model count in title bar
This commit is contained in:
parent
7b65ab44f1
commit
b0eb6e4411
|
@ -1,6 +1,8 @@
|
||||||
package ctbrec.ui;
|
package ctbrec.ui;
|
||||||
|
|
||||||
|
|
||||||
|
import static ctbrec.event.Event.Type.*;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
@ -349,11 +351,12 @@ public class CamrecApplication extends Application {
|
||||||
EventBusHolder.BUS.register(new Object() {
|
EventBusHolder.BUS.register(new Object() {
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void handleEvent(Event evt) {
|
public void handleEvent(Event evt) {
|
||||||
if(evt.getType() == Event.Type.MODEL_ONLINE || evt.getType() == Event.Type.MODEL_STATUS_CHANGED || evt.getType() == Event.Type.RECORDING_STATUS_CHANGED) {
|
if (evt.getType() == MODEL_ONLINE || evt.getType() == MODEL_STATUS_CHANGED || evt.getType() == RECORDING_STATUS_CHANGED) {
|
||||||
try {
|
try {
|
||||||
List<Model> models = recorder.getCurrentlyRecording();
|
int modelCount = recorder.getModelCount();
|
||||||
activeRecordings = models.size();
|
List<Model> currentlyRecording = recorder.getCurrentlyRecording();
|
||||||
String windowTitle = activeRecordings > 0 ? "(" + activeRecordings + ") " + title : title;
|
activeRecordings = currentlyRecording.size();
|
||||||
|
String windowTitle = getActiveRecordings(activeRecordings, modelCount) + title;
|
||||||
Platform.runLater(() -> primaryStage.setTitle(windowTitle));
|
Platform.runLater(() -> primaryStage.setTitle(windowTitle));
|
||||||
updateStatus();
|
updateStatus();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -361,6 +364,19 @@ public class CamrecApplication extends Application {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getActiveRecordings(int activeRecordings, int modelCount) {
|
||||||
|
if (activeRecordings > 0) {
|
||||||
|
StringBuilder s = new StringBuilder("(").append(activeRecordings);
|
||||||
|
if (config.getSettings().totalModelCountInTitle) {
|
||||||
|
s.append("/").append(modelCount);
|
||||||
|
}
|
||||||
|
s.append(") ");
|
||||||
|
return s.toString();
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +393,7 @@ public class CamrecApplication extends Application {
|
||||||
bytesPerSecond = 0;
|
bytesPerSecond = 0;
|
||||||
}
|
}
|
||||||
String humanReadable = ByteUnitFormatter.format(bytesPerSecond);
|
String humanReadable = ByteUnitFormatter.format(bytesPerSecond);
|
||||||
String status = String.format("Recording %s / %s models @ %s/s", activeRecordings, recorder.getModels().size(), humanReadable);
|
String status = String.format("Recording %s / %s models @ %s/s", activeRecordings, recorder.getModelCount(), humanReadable);
|
||||||
Platform.runLater(() -> statusLabel.setText(status));
|
Platform.runLater(() -> statusLabel.setText(status));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
private SimpleStringProperty path;
|
private SimpleStringProperty path;
|
||||||
private SimpleStringProperty downloadFilename;
|
private SimpleStringProperty downloadFilename;
|
||||||
private SimpleBooleanProperty requireAuthentication;
|
private SimpleBooleanProperty requireAuthentication;
|
||||||
|
private SimpleBooleanProperty totalModelCountInTitle;
|
||||||
private SimpleBooleanProperty transportLayerSecurity;
|
private SimpleBooleanProperty transportLayerSecurity;
|
||||||
private SimpleBooleanProperty fastScrollSpeed;
|
private SimpleBooleanProperty fastScrollSpeed;
|
||||||
private ExclusiveSelectionProperty recordLocal;
|
private ExclusiveSelectionProperty recordLocal;
|
||||||
|
@ -176,6 +177,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
downloadFilename = new SimpleStringProperty(null, "downloadFilename", settings.downloadFilename);
|
downloadFilename = new SimpleStringProperty(null, "downloadFilename", settings.downloadFilename);
|
||||||
requireAuthentication = new SimpleBooleanProperty(null, "requireAuthentication", settings.requireAuthentication);
|
requireAuthentication = new SimpleBooleanProperty(null, "requireAuthentication", settings.requireAuthentication);
|
||||||
requireAuthentication.addListener(this::requireAuthenticationChanged);
|
requireAuthentication.addListener(this::requireAuthenticationChanged);
|
||||||
|
totalModelCountInTitle = new SimpleBooleanProperty(null, "totalModelCountInTitle", settings.totalModelCountInTitle);
|
||||||
transportLayerSecurity = new SimpleBooleanProperty(null, "transportLayerSecurity", settings.transportLayerSecurity);
|
transportLayerSecurity = new SimpleBooleanProperty(null, "transportLayerSecurity", settings.transportLayerSecurity);
|
||||||
recordLocal = new ExclusiveSelectionProperty(null, "localRecording", settings.localRecording, "Local", "Remote");
|
recordLocal = new ExclusiveSelectionProperty(null, "localRecording", settings.localRecording, "Local", "Remote");
|
||||||
postProcessingThreads = new SimpleIntegerProperty(null, "postProcessingThreads", settings.postProcessingThreads);
|
postProcessingThreads = new SimpleIntegerProperty(null, "postProcessingThreads", settings.postProcessingThreads);
|
||||||
|
@ -208,6 +210,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
|
||||||
Setting.of("Add models from clipboard", monitorClipboard, "Monitor clipboard for model URLs and automatically add them to the recorder").needsRestart(),
|
Setting.of("Add models from clipboard", monitorClipboard, "Monitor clipboard for model URLs and automatically add them to the recorder").needsRestart(),
|
||||||
Setting.of("Fast scroll speed", fastScrollSpeed, "Makes the thumbnail overviews scroll faster with the mouse wheel").needsRestart(),
|
Setting.of("Fast scroll speed", fastScrollSpeed, "Makes the thumbnail overviews scroll faster with the mouse wheel").needsRestart(),
|
||||||
Setting.of("Show confirmation dialogs", confirmationDialogs, "Show confirmation dialogs for irreversible actions"),
|
Setting.of("Show confirmation dialogs", confirmationDialogs, "Show confirmation dialogs for irreversible actions"),
|
||||||
|
Setting.of("Total model count in title", totalModelCountInTitle, "Show the total number of models in the title bar"),
|
||||||
Setting.of("Start Tab", startTab),
|
Setting.of("Start Tab", startTab),
|
||||||
Setting.of("Colors (Base / Accent)", new ColorSettingsPane(Config.getInstance())).needsRestart()
|
Setting.of("Colors (Base / Accent)", new ColorSettingsPane(Config.getInstance())).needsRestart()
|
||||||
),
|
),
|
||||||
|
|
|
@ -147,6 +147,7 @@ public class Settings {
|
||||||
public String stripchatUsername = "";
|
public String stripchatUsername = "";
|
||||||
public String stripchatPassword = "";
|
public String stripchatPassword = "";
|
||||||
public boolean stripchatUseXhamster = false;
|
public boolean stripchatUseXhamster = false;
|
||||||
|
public boolean totalModelCountInTitle = false;
|
||||||
public boolean transportLayerSecurity = true;
|
public boolean transportLayerSecurity = true;
|
||||||
public int thumbWidth = 180;
|
public int thumbWidth = 180;
|
||||||
public boolean updateThumbnails = true;
|
public boolean updateThumbnails = true;
|
||||||
|
|
|
@ -722,4 +722,9 @@ public class NextGenLocalRecorder implements Recorder {
|
||||||
LOG.info("Resuming recorder");
|
LOG.info("Resuming recorder");
|
||||||
recording = true;
|
recording = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getModelCount() {
|
||||||
|
return models.size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,4 +140,6 @@ public interface Recorder {
|
||||||
* @throws InvalidKeyException
|
* @throws InvalidKeyException
|
||||||
*/
|
*/
|
||||||
public void resume() throws InvalidKeyException, NoSuchAlgorithmException, IOException;
|
public void resume() throws InvalidKeyException, NoSuchAlgorithmException, IOException;
|
||||||
|
|
||||||
|
public int getModelCount();
|
||||||
}
|
}
|
||||||
|
|
|
@ -591,4 +591,9 @@ public class RemoteRecorder implements Recorder {
|
||||||
public void resume() throws InvalidKeyException, NoSuchAlgorithmException, IOException {
|
public void resume() throws InvalidKeyException, NoSuchAlgorithmException, IOException {
|
||||||
sendRequest("resumeRecorder");
|
sendRequest("resumeRecorder");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getModelCount() {
|
||||||
|
return models.size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue