Add indicator icon for models marked for later recording
This commit is contained in:
parent
f8130acf00
commit
4421c6f9c3
|
@ -1,34 +0,0 @@
|
||||||
package ctbrec.ui.controls;
|
|
||||||
|
|
||||||
import ctbrec.ui.PauseIcon;
|
|
||||||
import javafx.scene.Cursor;
|
|
||||||
import javafx.scene.control.Tooltip;
|
|
||||||
import javafx.scene.layout.StackPane;
|
|
||||||
import javafx.scene.paint.Color;
|
|
||||||
import javafx.scene.paint.Paint;
|
|
||||||
import javafx.scene.shape.Rectangle;
|
|
||||||
|
|
||||||
public class PausedIndicator extends StackPane {
|
|
||||||
|
|
||||||
private PauseIcon pausedIcon;
|
|
||||||
private Rectangle clickPanel;
|
|
||||||
|
|
||||||
public PausedIndicator(int size, Color color) {
|
|
||||||
setMaxSize(size, size);
|
|
||||||
|
|
||||||
pausedIcon = new PauseIcon(color, size);
|
|
||||||
pausedIcon.setVisible(false);
|
|
||||||
clickPanel = new Rectangle(size, size);
|
|
||||||
clickPanel.setCursor(Cursor.HAND);
|
|
||||||
clickPanel.setFill(Paint.valueOf("#00000000"));
|
|
||||||
getChildren().add(pausedIcon);
|
|
||||||
getChildren().add(clickPanel);
|
|
||||||
|
|
||||||
pausedIcon.visibleProperty().bindBidirectional(visibleProperty());
|
|
||||||
clickPanel.onMouseClickedProperty().bindBidirectional(onMouseClickedProperty());
|
|
||||||
|
|
||||||
Tooltip tooltip = new Tooltip("Resume Recording");
|
|
||||||
Tooltip.install(clickPanel, tooltip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package ctbrec.ui.controls;
|
||||||
|
|
||||||
|
import javafx.scene.Cursor;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.scene.paint.Paint;
|
||||||
|
import javafx.scene.shape.Rectangle;
|
||||||
|
|
||||||
|
public class RecordingIndicator extends StackPane {
|
||||||
|
|
||||||
|
private ImageView icon;
|
||||||
|
private Rectangle clickPanel;
|
||||||
|
|
||||||
|
public RecordingIndicator(int size) {
|
||||||
|
setMaxSize(size, size);
|
||||||
|
|
||||||
|
icon = new ImageView();
|
||||||
|
icon.setVisible(false);
|
||||||
|
icon.prefHeight(size);
|
||||||
|
icon.prefWidth(size);
|
||||||
|
icon.maxHeight(size);
|
||||||
|
icon.maxWidth(size);
|
||||||
|
clickPanel = new Rectangle(size, size);
|
||||||
|
clickPanel.setCursor(Cursor.HAND);
|
||||||
|
clickPanel.setFill(Paint.valueOf("#00000000"));
|
||||||
|
getChildren().add(icon);
|
||||||
|
getChildren().add(clickPanel);
|
||||||
|
|
||||||
|
icon.visibleProperty().bindBidirectional(visibleProperty());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setImage(Image img) {
|
||||||
|
icon.setImage(img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ import ctbrec.ui.SiteUiFactory;
|
||||||
import ctbrec.ui.StreamSourceSelectionDialog;
|
import ctbrec.ui.StreamSourceSelectionDialog;
|
||||||
import ctbrec.ui.action.PlayAction;
|
import ctbrec.ui.action.PlayAction;
|
||||||
import ctbrec.ui.controls.Dialogs;
|
import ctbrec.ui.controls.Dialogs;
|
||||||
import ctbrec.ui.controls.PausedIndicator;
|
import ctbrec.ui.controls.RecordingIndicator;
|
||||||
import ctbrec.ui.controls.StreamPreview;
|
import ctbrec.ui.controls.StreamPreview;
|
||||||
import javafx.animation.FadeTransition;
|
import javafx.animation.FadeTransition;
|
||||||
import javafx.animation.FillTransition;
|
import javafx.animation.FillTransition;
|
||||||
|
@ -51,6 +51,7 @@ import javafx.scene.control.ContextMenu;
|
||||||
import javafx.scene.control.Tooltip;
|
import javafx.scene.control.Tooltip;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.paint.Paint;
|
import javafx.scene.paint.Paint;
|
||||||
|
@ -72,6 +73,11 @@ public class ThumbCell extends StackPane {
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(ThumbCell.class);
|
private static final Logger LOG = LoggerFactory.getLogger(ThumbCell.class);
|
||||||
private static final Duration ANIMATION_DURATION = new Duration(250);
|
private static final Duration ANIMATION_DURATION = new Duration(250);
|
||||||
|
|
||||||
|
private static Image imgRecordIndicator = new Image(ThumbCell.class.getResource("/media-record-16.png").toExternalForm());
|
||||||
|
private static Image imgPauseIndicator = new Image(ThumbCell.class.getResource("/media-playback-pause-16.png").toExternalForm());
|
||||||
|
private static Image imgBookmarkIndicator = new Image(ThumbCell.class.getResource("/bookmark-new-16.png").toExternalForm());
|
||||||
|
|
||||||
|
private ModelRecordingState modelRecordingState = ModelRecordingState.NOT;
|
||||||
private Model model;
|
private Model model;
|
||||||
private StreamPreview streamPreview;
|
private StreamPreview streamPreview;
|
||||||
private ImageView iv;
|
private ImageView iv;
|
||||||
|
@ -85,8 +91,8 @@ public class ThumbCell extends StackPane {
|
||||||
private Text topic;
|
private Text topic;
|
||||||
private Text resolutionTag;
|
private Text resolutionTag;
|
||||||
private Recorder recorder;
|
private Recorder recorder;
|
||||||
private Circle recordingIndicator;
|
private RecordingIndicator recordingIndicator;
|
||||||
private PausedIndicator pausedIndicator;
|
private Tooltip recordingIndicatorTooltip;
|
||||||
private StackPane previewTrigger;
|
private StackPane previewTrigger;
|
||||||
private int index = 0;
|
private int index = 0;
|
||||||
ContextMenu popup;
|
ContextMenu popup;
|
||||||
|
@ -178,22 +184,15 @@ public class ThumbCell extends StackPane {
|
||||||
StackPane.setMargin(resolutionTag, new Insets(2, 4, 2, 2));
|
StackPane.setMargin(resolutionTag, new Insets(2, 4, 2, 2));
|
||||||
getChildren().add(resolutionTag);
|
getChildren().add(resolutionTag);
|
||||||
|
|
||||||
recordingIndicator = new Circle(8);
|
recordingIndicator = new RecordingIndicator(16);
|
||||||
recordingIndicator.setFill(colorRecording);
|
|
||||||
recordingIndicator.setCursor(Cursor.HAND);
|
recordingIndicator.setCursor(Cursor.HAND);
|
||||||
recordingIndicator.setOnMouseClicked(e -> pauseResumeAction(true));
|
recordingIndicator.setOnMouseClicked(this::recordingInidicatorClicked);
|
||||||
Tooltip tooltip = new Tooltip("Pause Recording");
|
recordingIndicatorTooltip = new Tooltip("Pause Recording");
|
||||||
Tooltip.install(recordingIndicator, tooltip);
|
Tooltip.install(recordingIndicator, recordingIndicatorTooltip);
|
||||||
StackPane.setMargin(recordingIndicator, new Insets(3));
|
StackPane.setMargin(recordingIndicator, new Insets(3));
|
||||||
StackPane.setAlignment(recordingIndicator, Pos.TOP_LEFT);
|
StackPane.setAlignment(recordingIndicator, Pos.TOP_LEFT);
|
||||||
getChildren().add(recordingIndicator);
|
getChildren().add(recordingIndicator);
|
||||||
|
|
||||||
pausedIndicator = new PausedIndicator(16, colorRecording);
|
|
||||||
pausedIndicator.setOnMouseClicked(e -> pauseResumeAction(false));
|
|
||||||
StackPane.setMargin(pausedIndicator, new Insets(3));
|
|
||||||
StackPane.setAlignment(pausedIndicator, Pos.TOP_LEFT);
|
|
||||||
getChildren().add(pausedIndicator);
|
|
||||||
|
|
||||||
if (Config.getInstance().getSettings().livePreviews) {
|
if (Config.getInstance().getSettings().livePreviews) {
|
||||||
getChildren().add(createPreviewTrigger());
|
getChildren().add(createPreviewTrigger());
|
||||||
}
|
}
|
||||||
|
@ -231,6 +230,21 @@ public class ThumbCell extends StackPane {
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void recordingInidicatorClicked(MouseEvent evt) {
|
||||||
|
switch(modelRecordingState) {
|
||||||
|
case RECORDING:
|
||||||
|
pauseResumeAction(true);
|
||||||
|
break;
|
||||||
|
case PAUSED:
|
||||||
|
pauseResumeAction(false);
|
||||||
|
break;
|
||||||
|
case BOOKMARKED:
|
||||||
|
recordLater(false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Node createPreviewTrigger() {
|
private Node createPreviewTrigger() {
|
||||||
int s = 32;
|
int s = 32;
|
||||||
previewTrigger = new StackPane();
|
previewTrigger = new StackPane();
|
||||||
|
@ -293,7 +307,6 @@ public class ThumbCell extends StackPane {
|
||||||
streamPreview.stop();
|
streamPreview.stop();
|
||||||
}
|
}
|
||||||
recordingIndicator.setVisible(!visible);
|
recordingIndicator.setVisible(!visible);
|
||||||
pausedIndicator.setVisible(!visible);
|
|
||||||
if (!visible) {
|
if (!visible) {
|
||||||
updateRecordingIndicator();
|
updateRecordingIndicator();
|
||||||
}
|
}
|
||||||
|
@ -445,17 +458,32 @@ public class ThumbCell extends StackPane {
|
||||||
c = mouseHovering ? colorHighlight : colorNormal;
|
c = mouseHovering ? colorHighlight : colorNormal;
|
||||||
}
|
}
|
||||||
nameBackground.setFill(c);
|
nameBackground.setFill(c);
|
||||||
|
|
||||||
updateRecordingIndicator();
|
updateRecordingIndicator();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRecordingIndicator() {
|
private void updateRecordingIndicator() {
|
||||||
if (recording) {
|
if (recording) {
|
||||||
recordingIndicator.setVisible(!model.isSuspended());
|
recordingIndicator.setVisible(true);
|
||||||
pausedIndicator.setVisible(model.isSuspended());
|
if (model.isSuspended()) {
|
||||||
|
modelRecordingState = ModelRecordingState.PAUSED;
|
||||||
|
recordingIndicator.setImage(imgPauseIndicator);
|
||||||
|
recordingIndicatorTooltip.setText("Resume Recording");
|
||||||
|
} else {
|
||||||
|
modelRecordingState = ModelRecordingState.RECORDING;
|
||||||
|
recordingIndicator.setImage(imgRecordIndicator);
|
||||||
|
recordingIndicatorTooltip.setText("Pause Recording");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (model.isMarkedForLaterRecording()) {
|
||||||
|
recordingIndicator.setVisible(true);
|
||||||
|
modelRecordingState = ModelRecordingState.BOOKMARKED;
|
||||||
|
recordingIndicator.setImage(imgBookmarkIndicator);
|
||||||
|
recordingIndicatorTooltip.setText("Forget Model");
|
||||||
} else {
|
} else {
|
||||||
recordingIndicator.setVisible(false);
|
recordingIndicator.setVisible(false);
|
||||||
pausedIndicator.setVisible(false);
|
modelRecordingState = ModelRecordingState.NOT;
|
||||||
|
recordingIndicator.setImage(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -562,9 +590,9 @@ public class ThumbCell extends StackPane {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void recordLater() {
|
void recordLater(boolean recordLater) {
|
||||||
model.setMarkedForLaterRecording(true);
|
model.setMarkedForLaterRecording(recordLater);
|
||||||
startStopAction(true);
|
startStopAction(recordLater);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Model getModel() {
|
public Model getModel() {
|
||||||
|
@ -577,7 +605,6 @@ public class ThumbCell extends StackPane {
|
||||||
this.model.setPreview(model.getPreview());
|
this.model.setPreview(model.getPreview());
|
||||||
this.model.setTags(model.getTags());
|
this.model.setTags(model.getTags());
|
||||||
this.model.setUrl(model.getUrl());
|
this.model.setUrl(model.getUrl());
|
||||||
this.model.setSuspended(recorder.isSuspended(model));
|
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -591,9 +618,11 @@ public class ThumbCell extends StackPane {
|
||||||
|
|
||||||
private void update() {
|
private void update() {
|
||||||
model.setSuspended(recorder.isSuspended(model));
|
model.setSuspended(recorder.isSuspended(model));
|
||||||
|
model.setMarkedForLaterRecording(recorder.isMarkedForLaterRecording(model));
|
||||||
setRecording(recorder.isTracked(model));
|
setRecording(recorder.isTracked(model));
|
||||||
|
updateRecordingIndicator();
|
||||||
setImage(model.getPreview());
|
setImage(model.getPreview());
|
||||||
String txt = recording ? " " : "";
|
String txt = (modelRecordingState != ModelRecordingState.NOT) ? " " : "";
|
||||||
txt += model.getDescription() != null ? model.getDescription() : "";
|
txt += model.getDescription() != null ? model.getDescription() : "";
|
||||||
topic.setText(txt);
|
topic.setText(txt);
|
||||||
|
|
||||||
|
@ -693,4 +722,11 @@ public class ThumbCell extends StackPane {
|
||||||
model.setMarkedForLaterRecording(false);
|
model.setMarkedForLaterRecording(false);
|
||||||
startStopAction(true);
|
startStopAction(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private enum ModelRecordingState {
|
||||||
|
RECORDING,
|
||||||
|
PAUSED,
|
||||||
|
BOOKMARKED,
|
||||||
|
NOT
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,31 @@
|
||||||
package ctbrec.ui.tabs;
|
package ctbrec.ui.tabs;
|
||||||
|
|
||||||
|
import static ctbrec.ui.controls.Dialogs.*;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.SocketTimeoutException;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.BlockingQueue;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
|
import java.util.concurrent.ThreadFactory;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import ctbrec.Config;
|
import ctbrec.Config;
|
||||||
import ctbrec.Model;
|
import ctbrec.Model;
|
||||||
import ctbrec.event.EventBusHolder;
|
import ctbrec.event.EventBusHolder;
|
||||||
|
@ -7,12 +33,24 @@ import ctbrec.recorder.Recorder;
|
||||||
import ctbrec.sites.Site;
|
import ctbrec.sites.Site;
|
||||||
import ctbrec.sites.mfc.MyFreeCamsClient;
|
import ctbrec.sites.mfc.MyFreeCamsClient;
|
||||||
import ctbrec.sites.mfc.MyFreeCamsModel;
|
import ctbrec.sites.mfc.MyFreeCamsModel;
|
||||||
import ctbrec.ui.*;
|
import ctbrec.ui.AutosizeAlert;
|
||||||
|
import ctbrec.ui.DesktopIntegration;
|
||||||
|
import ctbrec.ui.SiteUiFactory;
|
||||||
|
import ctbrec.ui.TipDialog;
|
||||||
|
import ctbrec.ui.TokenLabel;
|
||||||
import ctbrec.ui.action.IgnoreModelsAction;
|
import ctbrec.ui.action.IgnoreModelsAction;
|
||||||
import ctbrec.ui.action.OpenRecordingsDir;
|
import ctbrec.ui.action.OpenRecordingsDir;
|
||||||
import ctbrec.ui.action.SetStopDateAction;
|
import ctbrec.ui.action.SetStopDateAction;
|
||||||
import ctbrec.ui.controls.*;
|
import ctbrec.ui.controls.CustomMouseBehaviorContextMenu;
|
||||||
import javafx.animation.*;
|
import ctbrec.ui.controls.FasterVerticalScrollPaneSkin;
|
||||||
|
import ctbrec.ui.controls.SearchBox;
|
||||||
|
import ctbrec.ui.controls.SearchPopover;
|
||||||
|
import ctbrec.ui.controls.SearchPopoverTreeList;
|
||||||
|
import javafx.animation.FadeTransition;
|
||||||
|
import javafx.animation.Interpolator;
|
||||||
|
import javafx.animation.ParallelTransition;
|
||||||
|
import javafx.animation.ScaleTransition;
|
||||||
|
import javafx.animation.TranslateTransition;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.property.BooleanProperty;
|
import javafx.beans.property.BooleanProperty;
|
||||||
import javafx.beans.property.SimpleBooleanProperty;
|
import javafx.beans.property.SimpleBooleanProperty;
|
||||||
|
@ -28,24 +66,34 @@ import javafx.geometry.Insets;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.Alert;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.ComboBox;
|
||||||
|
import javafx.scene.control.ContextMenu;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.control.MenuItem;
|
||||||
|
import javafx.scene.control.ProgressIndicator;
|
||||||
|
import javafx.scene.control.ScrollPane;
|
||||||
|
import javafx.scene.control.SeparatorMenuItem;
|
||||||
|
import javafx.scene.control.Tab;
|
||||||
|
import javafx.scene.control.TabPane;
|
||||||
|
import javafx.scene.control.TextField;
|
||||||
|
import javafx.scene.control.Tooltip;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.*;
|
import javafx.scene.input.Clipboard;
|
||||||
import javafx.scene.layout.*;
|
import javafx.scene.input.ClipboardContent;
|
||||||
|
import javafx.scene.input.ContextMenuEvent;
|
||||||
|
import javafx.scene.input.KeyCode;
|
||||||
|
import javafx.scene.input.KeyEvent;
|
||||||
|
import javafx.scene.input.MouseButton;
|
||||||
|
import javafx.scene.input.MouseEvent;
|
||||||
|
import javafx.scene.layout.BorderPane;
|
||||||
|
import javafx.scene.layout.FlowPane;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
|
import javafx.scene.layout.Priority;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.transform.Transform;
|
import javafx.scene.transform.Transform;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.SocketTimeoutException;
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.concurrent.*;
|
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static ctbrec.ui.controls.Dialogs.showError;
|
|
||||||
|
|
||||||
public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(ThumbOverviewTab.class);
|
private static final Logger LOG = LoggerFactory.getLogger(ThumbOverviewTab.class);
|
||||||
|
@ -441,7 +489,10 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
||||||
MenuItem addPaused = new MenuItem("Add in paused state");
|
MenuItem addPaused = new MenuItem("Add in paused state");
|
||||||
addPaused.setOnAction(e -> addPaused(getSelectedThumbCells(cell)));
|
addPaused.setOnAction(e -> addPaused(getSelectedThumbCells(cell)));
|
||||||
MenuItem recordLater = new MenuItem("Record Later");
|
MenuItem recordLater = new MenuItem("Record Later");
|
||||||
recordLater.setOnAction(e -> recordLater(getSelectedThumbCells(cell)));
|
recordLater.setOnAction(e -> recordLater(getSelectedThumbCells(cell), true));
|
||||||
|
MenuItem removeRecordLater = new MenuItem("Forget Model");
|
||||||
|
removeRecordLater.setOnAction(e -> recordLater(getSelectedThumbCells(cell), false));
|
||||||
|
MenuItem addRemoveBookmark = recorder.isMarkedForLaterRecording(model) ? removeRecordLater : recordLater;
|
||||||
|
|
||||||
MenuItem pause = new MenuItem("Pause Recording");
|
MenuItem pause = new MenuItem("Pause Recording");
|
||||||
pause.setOnAction(e -> pauseResumeAction(getSelectedThumbCells(cell), true));
|
pause.setOnAction(e -> pauseResumeAction(getSelectedThumbCells(cell), true));
|
||||||
|
@ -476,10 +527,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
||||||
if (modelIsTrackedByRecorder) {
|
if (modelIsTrackedByRecorder) {
|
||||||
contextMenu.getItems().addAll(pauseResume, recordLater);
|
contextMenu.getItems().addAll(pauseResume, recordLater);
|
||||||
} else {
|
} else {
|
||||||
contextMenu.getItems().addAll(recordUntil, addPaused);
|
contextMenu.getItems().addAll(recordUntil, addPaused, addRemoveBookmark);
|
||||||
if (!recorder.isMarkedForLaterRecording(model)) {
|
|
||||||
contextMenu.getItems().add(recordLater);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
contextMenu.getItems().add(new SeparatorMenuItem());
|
contextMenu.getItems().add(new SeparatorMenuItem());
|
||||||
if (site.supportsFollow()) {
|
if (site.supportsFollow()) {
|
||||||
|
@ -500,9 +548,9 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener {
|
||||||
return contextMenu;
|
return contextMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recordLater(List<ThumbCell> list) {
|
private void recordLater(List<ThumbCell> list, boolean recordLater) {
|
||||||
for (ThumbCell cell : list) {
|
for (ThumbCell cell : list) {
|
||||||
cell.recordLater();
|
cell.recordLater(recordLater);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 785 B |
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 718 B |
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Loading…
Reference in New Issue