remove notification, if eventView is focused

This commit is contained in:
Armin Schrenk
2025-03-19 15:13:51 +01:00
parent 5378769467
commit 1f60d9f5e8
3 changed files with 23 additions and 4 deletions

View File

@@ -12,7 +12,9 @@ import org.cryptomator.ui.common.FxmlLoaderFactory;
import org.cryptomator.ui.common.FxmlScene;
import org.cryptomator.ui.common.StageFactory;
import javax.inject.Named;
import javax.inject.Provider;
import javafx.beans.property.BooleanProperty;
import javafx.scene.Scene;
import javafx.stage.Modality;
import javafx.stage.Stage;
@@ -25,12 +27,17 @@ abstract class EventViewModule {
@Provides
@EventViewScoped
@EventViewWindow
static Stage provideStage(StageFactory factory, ResourceBundle resourceBundle) {
static Stage provideStage(StageFactory factory, ResourceBundle resourceBundle, @Named("unreadEventsAvailable") BooleanProperty unreadEvents) {
Stage stage = factory.create();
stage.setHeight(498);
stage.setTitle(resourceBundle.getString("eventView.title"));
stage.setResizable(true);
stage.initModality(Modality.NONE);
stage.focusedProperty().addListener((_,_,isFocused) -> {
if(isFocused) {
unreadEvents.setValue(false);
}
});
return stage;
}

View File

@@ -20,6 +20,9 @@ import org.cryptomator.ui.unlock.UnlockComponent;
import org.cryptomator.ui.updatereminder.UpdateReminderComponent;
import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
import javax.inject.Named;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.scene.image.Image;
import java.io.IOException;
import java.io.InputStream;
@@ -74,4 +77,11 @@ abstract class FxApplicationModule {
return factory.create();
}
@Provides
@FxApplicationScoped
@Named("unreadEventsAvailable")
static BooleanProperty provideUnreadEventsAvailable() {
return new SimpleBooleanProperty(false);
}
}

View File

@@ -1,12 +1,12 @@
package org.cryptomator.ui.mainwindow;
import org.apache.commons.lang3.SystemUtils;
import org.cryptomator.event.FileSystemEventRegistry;
import org.cryptomator.common.settings.Settings;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.common.vaults.VaultListManager;
import org.cryptomator.cryptofs.CryptoFileSystemProvider;
import org.cryptomator.cryptofs.DirStructure;
import org.cryptomator.event.FileSystemEventRegistry;
import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.common.VaultService;
@@ -17,6 +17,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Named;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.property.BooleanProperty;
@@ -96,7 +97,8 @@ public class VaultListController implements FxController {
FxApplicationWindows appWindows, //
Settings settings, //
Dialogs dialogs, //
FileSystemEventRegistry fileSystemEventRegistry) {
FileSystemEventRegistry fileSystemEventRegistry, //
@Named("unreadEventsAvailable") BooleanProperty unreadEvents) {
this.mainWindow = mainWindow;
this.vaults = vaults;
this.selectedVault = selectedVault;
@@ -110,7 +112,7 @@ public class VaultListController implements FxController {
this.emptyVaultList = Bindings.isEmpty(vaults);
this.fileSystemEventRegistry = fileSystemEventRegistry;
this.newEventsPresent = new SimpleBooleanProperty(false);
this.newEventsPresent = unreadEvents;
fileSystemEventRegistry.addListener((MapChangeListener<? super FileSystemEventRegistry.Key, ? super FileSystemEventRegistry.Value>) change -> {
if (change.wasAdded()) {
newEventsPresent.setValue(true);