Fix progress bar due to JavaFX limitations

This commit is contained in:
Ralph Plawetzki
2025-07-29 06:29:06 +02:00
parent 8e6500d93f
commit 99e9e92f10
3 changed files with 19 additions and 12 deletions

View File

@@ -101,7 +101,7 @@ public class UpdateChecker {
LOG.debug("Update progess is at percentage: {} and has status: {}", progress.getProgress(), progress.getStatus());
if (progress.getStatus() == 0 || progress.getStatus() == 2) {
controller.flatpakProgressProperty().set(progress.getProgress() / 100.0);
Platform.runLater(() -> controller.flatpakProgressProperty().set(progress.getProgress() / 100.0));
}
if (progress.getStatus() == 2 && progress.getProgress() == 100) {

View File

@@ -27,6 +27,7 @@ import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@@ -74,8 +75,7 @@ public class UpdatesPreferencesController implements FxController {
/* FXML */
public CheckBox checkForUpdatesCheckbox;
@FXML
public Button flatpakUpdateButton;
public Label flatpakButtonLabel;
@Inject
UpdatesPreferencesController(Application application, Environment environment, ResourceBundle resourceBundle, Settings settings, UpdateChecker updateChecker, AppUpdateChecker appUpdateChecker, Environment env) {
@@ -103,7 +103,7 @@ public class UpdatesPreferencesController implements FxController {
public void initialize() {
checkForUpdatesCheckbox.selectedProperty().bindBidirectional(settings.checkForUpdates);
switch (env.getBuildNumber().get()) {
case "flatpak-1" -> flatpakUpdateButton.setText(appUpdateChecker.getServiceForChannel(DistributionChannel.Value.LINUX_FLATPAK).getDisplayName());
case "flatpak-1" -> flatpakButtonLabel.setText(appUpdateChecker.getServiceForChannel(DistributionChannel.Value.LINUX_FLATPAK).getDisplayName());
default -> LOG.error("Unexpected value 'buildNumber': {}", env.getBuildNumber().get());
}
@@ -243,4 +243,8 @@ public class UpdatesPreferencesController implements FxController {
public DoubleProperty flatpakProgressProperty() {
return flatpakProgress;
}
public double getFlatpakProgress() {
return flatpakProgress.get();
}
}

View File

@@ -53,16 +53,19 @@
</graphic>
</Label>
<Hyperlink text="${linkLabel.value}" onAction="#visitDownloadsPage" textAlignment="CENTER" wrapText="true" styleClass="hyperlink-underline" visible="${controller.updateAvailable}" managed="${controller.updateAvailable}"/>
<Button fx:id="flatpakUpdateButton"
onAction="#updateFlatpakNow"
<Button onAction="#updateFlatpakNow"
visible="${controller.appUpdateAvailable}">
<graphic>
<VBox spacing="5" alignment="CENTER">
<Label fx:id="flatpakButtonLabel"/>
<ProgressBar maxWidth="200"
maxHeight="12"
visible="${controller.updatingFlatpak}"
managed="${controller.updatingFlatpak}"
progress="${controller.flatpakProgress}"/>
</VBox>
</graphic>
</Button>
<ProgressBar fx:id="flatpakProgressBar"
maxWidth="200"
maxHeight="12"
visible="${controller.updatingFlatpak}"
managed="${controller.updatingFlatpak}"
progress="${controller.flatpakProgress}"/>
</VBox>
</VBox>