mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 17:06:16 +00:00
Merge pull request #1989 from millmanorama/IG-don't-reset-toolbar-when-ig-has-not-been-launched
toolbar is no longer a lazily initialized singleton, it is no lon…
This commit is contained in:
commit
6e4c7b4b15
@ -35,6 +35,7 @@ import javafx.beans.Observable;
|
||||
import javafx.beans.property.ReadOnlyBooleanProperty;
|
||||
import javafx.beans.property.ReadOnlyBooleanWrapper;
|
||||
import javafx.beans.property.ReadOnlyDoubleProperty;
|
||||
import javafx.beans.property.ReadOnlyDoubleWrapper;
|
||||
import javafx.beans.property.ReadOnlyIntegerProperty;
|
||||
import javafx.beans.property.ReadOnlyIntegerWrapper;
|
||||
import javafx.beans.property.ReadOnlyObjectProperty;
|
||||
@ -95,6 +96,7 @@ public final class ImageGalleryController implements Executor {
|
||||
|
||||
private final Executor execDelegate = Executors.newSingleThreadExecutor();
|
||||
private Runnable showTree;
|
||||
private Toolbar toolbar;
|
||||
|
||||
@Override
|
||||
public void execute(Runnable command) {
|
||||
@ -134,6 +136,7 @@ public final class ImageGalleryController implements Executor {
|
||||
private final ReadOnlyBooleanWrapper stale = new ReadOnlyBooleanWrapper(false);
|
||||
|
||||
private final ReadOnlyBooleanWrapper metaDataCollapsed = new ReadOnlyBooleanWrapper(false);
|
||||
private final ReadOnlyDoubleWrapper thumbnailSize = new ReadOnlyDoubleWrapper(100);
|
||||
|
||||
private final FileIDSelectionModel selectionModel = new FileIDSelectionModel(this);
|
||||
|
||||
@ -161,6 +164,10 @@ public final class ImageGalleryController implements Executor {
|
||||
this.metaDataCollapsed.set(metaDataCollapsed);
|
||||
}
|
||||
|
||||
public ReadOnlyDoubleProperty thumbnailSizeProperty() {
|
||||
return thumbnailSize.getReadOnlyProperty();
|
||||
}
|
||||
|
||||
private GroupViewState getViewState() {
|
||||
return historyManager.getCurrentState();
|
||||
}
|
||||
@ -418,7 +425,9 @@ public final class ImageGalleryController implements Executor {
|
||||
dbWorkerThread = null;
|
||||
dbWorkerThread = restartWorker();
|
||||
|
||||
Toolbar.getDefault(this).reset();
|
||||
if (toolbar != null) {
|
||||
toolbar.reset();
|
||||
}
|
||||
|
||||
if (db != null) {
|
||||
db.closeDBCon();
|
||||
@ -453,6 +462,14 @@ public final class ImageGalleryController implements Executor {
|
||||
Platform.runLater(this::checkForGroups);
|
||||
}
|
||||
|
||||
public synchronized void setToolbar(Toolbar toolbar) {
|
||||
if (this.toolbar != null) {
|
||||
throw new IllegalStateException("Can not set the toolbar a second time!");
|
||||
}
|
||||
this.toolbar = toolbar;
|
||||
thumbnailSize.bind(toolbar.thumbnailSizeProperty());
|
||||
}
|
||||
|
||||
public ReadOnlyDoubleProperty regroupProgress() {
|
||||
return groupManager.regroupProgress();
|
||||
}
|
||||
|
@ -148,7 +148,8 @@ public final class ImageGalleryTopComponent extends TopComponent implements Expl
|
||||
fullUIStack.getChildren().add(borderPane);
|
||||
splitPane = new SplitPane();
|
||||
borderPane.setCenter(splitPane);
|
||||
borderPane.setTop(Toolbar.getDefault(controller));
|
||||
Toolbar toolbar = new Toolbar(controller);
|
||||
borderPane.setTop(toolbar);
|
||||
borderPane.setBottom(new StatusBar(controller));
|
||||
|
||||
metaDataTable = new MetaDataPane(controller);
|
||||
@ -168,6 +169,7 @@ public final class ImageGalleryTopComponent extends TopComponent implements Expl
|
||||
splitPane.setDividerPositions(0.1, 1.0);
|
||||
|
||||
ImageGalleryController.getDefault().setStacks(fullUIStack, centralStack);
|
||||
ImageGalleryController.getDefault().setToolbar(toolbar);
|
||||
ImageGalleryController.getDefault().setShowTree(() -> tabPane.getSelectionModel().select(groupTree));
|
||||
});
|
||||
}
|
||||
|
@ -26,7 +26,6 @@ import javafx.application.Platform;
|
||||
import javafx.beans.InvalidationListener;
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.property.DoubleProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.ComboBox;
|
||||
@ -35,7 +34,6 @@ import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.control.Slider;
|
||||
import javafx.scene.control.SplitMenuButton;
|
||||
import javafx.scene.control.ToolBar;
|
||||
import javax.swing.SortOrder;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.imagegallery.FXMLConstructor;
|
||||
@ -82,10 +80,6 @@ public class Toolbar extends ToolBar {
|
||||
@FXML
|
||||
private Label thumbnailSizeLabel;
|
||||
|
||||
private static Toolbar instance;
|
||||
|
||||
private final SimpleObjectProperty<SortOrder> orderProperty = new SimpleObjectProperty<>(SortOrder.ASCENDING);
|
||||
|
||||
private final ImageGalleryController controller;
|
||||
private SortChooser<DrawableGroup, GroupSortBy> sortChooser;
|
||||
|
||||
@ -99,17 +93,10 @@ public class Toolbar extends ToolBar {
|
||||
}
|
||||
};
|
||||
|
||||
public DoubleProperty sizeSliderValue() {
|
||||
public DoubleProperty thumbnailSizeProperty() {
|
||||
return sizeSlider.valueProperty();
|
||||
}
|
||||
|
||||
static synchronized public Toolbar getDefault(ImageGalleryController controller) {
|
||||
if (instance == null) {
|
||||
instance = new Toolbar(controller);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
@FXML
|
||||
@NbBundle.Messages({"Toolbar.groupByLabel=Group By:",
|
||||
"Toolbar.sortByLabel=Sort By:",
|
||||
@ -157,7 +144,6 @@ public class Toolbar extends ToolBar {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
groupByLabel.setText(Bundle.Toolbar_groupByLabel());
|
||||
tagImageViewLabel.setText(Bundle.Toolbar_tagImageViewLabel());
|
||||
categoryImageViewLabel.setText(Bundle.Toolbar_categoryImageViewLabel());
|
||||
@ -202,7 +188,7 @@ public class Toolbar extends ToolBar {
|
||||
});
|
||||
}
|
||||
|
||||
private Toolbar(ImageGalleryController controller) {
|
||||
public Toolbar(ImageGalleryController controller) {
|
||||
this.controller = controller;
|
||||
FXMLConstructor.construct(this, "Toolbar.fxml"); //NON-NLS
|
||||
}
|
||||
|
@ -35,7 +35,6 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.imagegallery.FXMLConstructor;
|
||||
import org.sleuthkit.autopsy.imagegallery.ImageGalleryController;
|
||||
import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile;
|
||||
import org.sleuthkit.autopsy.imagegallery.gui.Toolbar;
|
||||
|
||||
/**
|
||||
* GUI component that represents a single image as a tile with an icon, a label,
|
||||
@ -64,8 +63,8 @@ public class DrawableTile extends DrawableTileBase {
|
||||
setCache(true);
|
||||
setCacheHint(CacheHint.SPEED);
|
||||
nameLabel.prefWidthProperty().bind(imageView.fitWidthProperty());
|
||||
imageView.fitHeightProperty().bind(Toolbar.getDefault(getController()).sizeSliderValue());
|
||||
imageView.fitWidthProperty().bind(Toolbar.getDefault(getController()).sizeSliderValue());
|
||||
imageView.fitHeightProperty().bind(getController().thumbnailSizeProperty());
|
||||
imageView.fitWidthProperty().bind(getController().thumbnailSizeProperty());
|
||||
|
||||
selectionModel.lastSelectedProperty().addListener(new WeakChangeListener<>(lastSelectionListener));
|
||||
|
||||
|
@ -128,7 +128,6 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.DrawableGroup;
|
||||
import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.GroupViewMode;
|
||||
import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.GroupViewState;
|
||||
import org.sleuthkit.autopsy.imagegallery.gui.GuiUtils;
|
||||
import org.sleuthkit.autopsy.imagegallery.gui.Toolbar;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
|
||||
/**
|
||||
@ -418,7 +417,7 @@ public class GroupPane extends BorderPane {
|
||||
flashAnimation.setAutoReverse(true);
|
||||
|
||||
//configure gridView cell properties
|
||||
DoubleBinding cellSize = Toolbar.getDefault(controller).sizeSliderValue().add(75);
|
||||
DoubleBinding cellSize = controller.thumbnailSizeProperty().add(75);
|
||||
gridView.cellHeightProperty().bind(cellSize);
|
||||
gridView.cellWidthProperty().bind(cellSize);
|
||||
gridView.setCellFactory((GridView<Long> param) -> new DrawableCell());
|
||||
|
Loading…
x
Reference in New Issue
Block a user