From e8f653bcdd569303786da60f014144239511afdb Mon Sep 17 00:00:00 2001
From: 0xb00bface <0xboobface@gmail.com>
Date: Sun, 12 Sep 2021 14:58:38 +0200
Subject: [PATCH] Load portrait images only if column is visible

---
 .../recorded/AbstractRecordedModelsTab.java   | 53 +++++++------------
 1 file changed, 18 insertions(+), 35 deletions(-)

diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java
index d12444bf..d2cf13a2 100644
--- a/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java
+++ b/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java
@@ -1,26 +1,9 @@
 package ctbrec.ui.tabs.recorded;
 
-import static ctbrec.ui.action.AbstractPortraitAction.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.time.Instant;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-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 com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import com.google.common.eventbus.Subscribe;
-
 import ctbrec.Config;
 import ctbrec.GlobalThreadPool;
 import ctbrec.Model;
@@ -54,30 +37,30 @@ import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.geometry.Insets;
 import javafx.geometry.Pos;
-import javafx.scene.control.Alert;
-import javafx.scene.control.Button;
-import javafx.scene.control.ContextMenu;
-import javafx.scene.control.Label;
-import javafx.scene.control.ScrollPane;
-import javafx.scene.control.SelectionMode;
-import javafx.scene.control.Tab;
-import javafx.scene.control.TableCell;
-import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableRow;
-import javafx.scene.control.TextField;
-import javafx.scene.control.Tooltip;
+import javafx.scene.control.*;
 import javafx.scene.control.cell.PropertyValueFactory;
 import javafx.scene.image.Image;
-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.input.*;
 import javafx.scene.layout.BorderPane;
 import javafx.scene.layout.FlowPane;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.Priority;
 import javafx.util.Callback;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
+
+import static ctbrec.ui.action.AbstractPortraitAction.FORMAT;
 
 public abstract class AbstractRecordedModelsTab extends Tab implements TabSelectionListener {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractRecordedModelsTab.class);
@@ -233,7 +216,7 @@ public abstract class AbstractRecordedModelsTab extends Tab implements TabSelect
             Model mdl = param.getValue().getDelegate();
             SimpleObjectProperty<Image> imgProperty = new SimpleObjectProperty<>();
             Image image = portraitCache.getIfPresent(mdl);
-            if (image == null) {
+            if (image == null && portrait.isVisible()) {
                 GlobalThreadPool.submit(() -> portraitCache.put(mdl, loadModelPortrait(mdl)));
             }
             imgProperty.set(image);