Skip to content

Commit bb4a0ab

Browse files
committed
- bring settings dialog to front on linux
- make settings dialog dark mode compatible
1 parent 2b7638e commit bb4a0ab

File tree

3 files changed

+20
-42
lines changed

3 files changed

+20
-42
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
- **BUGFIX:** Diverse Textfelder werden im Dark Mode nicht mehr mit weißem Hintergrund dargestellt.
88
- **BUGFIX:** MV deaktiviert im Fehlerfall die moderne Suche automatisch, so dass ein Neustart der App möglich wird.
99
- **BUGFIX:** Das Umbenennen von PSets in den Einstellungen funktioniert nun richtig.
10+
- **BUGFIX(Linux):** Der Einstellungen-Dialog öffnet sich nicht mehr vom Hauptfenster verdeckt.
1011
- **FEATURE(Linux/Windows):** Das Aussehen von FlatLaf kann in `.mediathek3/flatlaf` angepasst werden.
1112
- **FEATURE:** Selektierte Einträge in `Suchhistorie bearbeiten`-Dialog können nun mittels Entfernen-Taste gelöscht werden.
1213
- **FEATURE:** Das Blacklist Filter-Icon in der Toolbar kann mittels *Einstellungen/Allgemein* mit einem aussagefähigen Zusatztext dargestellt werden.
1314
- **FEATURE:** Dark Mode für Filter-Dialog.
1415
- **FEATURE:** Beschleunigte Verarbeitung von Lucene mittels native access aktiviert (benötigt `--enable-native-access=ALL-UNNAMED --add-modules jdk.incubator.vector` in den Startparametern)
1516
- **FEATURE:** *Einstellungen/Set bearbeiten* für Dark Mode-Kompatibilität angepasst.
17+
- **FEATURE:** Der Einstellungen-Dialog ist nun vollständig Dark-Mode-kompatibel.
1618

1719
# **14.1.0**
1820
- JDK 21 wird nun mitgeliefert. Behebt primär Darstellungsfehler von Java Apps unter Windows.

src/main/java/mediathek/gui/dialogEinstellungen/DialogEinstellungen.java

Lines changed: 13 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,6 @@
2121
public class DialogEinstellungen extends JFrame {
2222
private final Daten daten;
2323
public boolean ok;
24-
private PanelEinstellungen panelEinstellungen;
25-
private PanelDownload panelDownload;
26-
private PanelEinstellungenErweitert panelEinstellungenErweitert;
27-
private PanelEinstellungenGeo panelEinstellungenGeo;
28-
private PanelEinstellungenColor panelEinstellungenColor;
29-
private PanelFilmlisteLaden panelImportFilme;
30-
private PanelBlacklist panelBlacklist;
31-
private PanelDateinamen panelDateinamen;
32-
private JPanel panelPset;
33-
private PanelPsetImport panelPsetVorlagen;
34-
private JPanel panelNotifications;
35-
private final JPanel panelLeer = new JPanel();
3624

3725
private static final String NAME_einstellungen = "Einstellungen";
3826
private static final String NAME_allgemeineEinstellungen = "Allgemein";
@@ -69,7 +57,6 @@ public DialogEinstellungen() {
6957
initComponents();
7058
daten = Daten.getInstance();
7159

72-
initPanels();
7360
initTree();
7461

7562
restoreSizeFromConfig();
@@ -114,21 +101,6 @@ private void restoreSizeFromConfig() {
114101
}
115102
}
116103

117-
private void initPanels() {
118-
panelEinstellungen = new PanelEinstellungen();
119-
panelDownload = new PanelDownload();
120-
panelEinstellungenErweitert = new PanelEinstellungenErweitert();
121-
panelEinstellungenGeo = new PanelEinstellungenGeo(this);
122-
panelEinstellungenColor = new PanelEinstellungenColor();
123-
panelImportFilme = new PanelFilmlisteLaden(true);
124-
panelBlacklist = new PanelBlacklist(daten, this, PanelBlacklist.class.getName());
125-
panelDateinamen = new PanelDateinamen(daten, this);
126-
panelPset = new PanelPset(this);
127-
panelPsetVorlagen = new PanelPsetImport(daten, this);
128-
129-
panelNotifications = new PanelNotifications();
130-
}
131-
132104
private void initTree() {
133105
DefaultMutableTreeNode treeNodeStart = new DefaultMutableTreeNode(Konstanten.PROGRAMMNAME);
134106
// ######## Einstellungen ############
@@ -163,61 +135,61 @@ private void initTree() {
163135
if (node == null) {
164136
// nix markiert
165137
jPanelExtra.removeAll();
166-
jPanelExtra.add(panelLeer);
138+
jPanelExtra.add(new JPanel());
167139
} else {
168140
String name1 = node.getUserObject().toString();
169141
setTitle(name1);
170142
switch (name1) {
171143
case NAME_einstellungen -> jTree1.setSelectionPath(new TreePath(treeNodeAllgemeineEinstellungen.getPath()));
172144
case NAME_notifications -> {
173145
jPanelExtra.removeAll();
174-
jPanelExtra.add(panelNotifications);
146+
jPanelExtra.add(new PanelNotifications());
175147
}
176148
case NAME_bandwidth -> {
177149
jPanelExtra.removeAll();
178-
jPanelExtra.add(panelDownload);
150+
jPanelExtra.add(new PanelDownload());
179151
}
180152
case NAME_allgemeineEinstellungen -> {
181153
jPanelExtra.removeAll();
182-
jPanelExtra.add(panelEinstellungen);
154+
jPanelExtra.add(new PanelEinstellungen());
183155
}
184156
case NAME_allgemeineEinstellungenErweitert -> {
185157
jPanelExtra.removeAll();
186-
jPanelExtra.add(panelEinstellungenErweitert);
158+
jPanelExtra.add(new PanelEinstellungenErweitert());
187159
}
188160
case NAME_allgemeineEinstellungenGeo -> {
189161
jPanelExtra.removeAll();
190-
jPanelExtra.add(panelEinstellungenGeo);
162+
jPanelExtra.add(new PanelEinstellungenGeo(this));
191163
}
192164
case NAME_allgemeineEinstellungenColor -> {
193165
jPanelExtra.removeAll();
194-
jPanelExtra.add(panelEinstellungenColor);
166+
jPanelExtra.add(new PanelEinstellungenColor());
195167
}
196168
case NAME_filmListe -> jTree1.setSelectionPath(new TreePath(treeNodeFilmliste.getPath()));
197169
case NAME_filmListeLaden -> {
198170
jPanelExtra.removeAll();
199-
jPanelExtra.add(panelImportFilme);
171+
jPanelExtra.add(new PanelFilmlisteLaden(true));
200172
}
201173
case NAME_blacklist -> {
202174
jPanelExtra.removeAll();
203-
jPanelExtra.add(panelBlacklist);
175+
jPanelExtra.add(new PanelBlacklist(daten, this, PanelBlacklist.class.getName()));
204176
}
205177
case NAME_aufzeichnen -> jTree1.setSelectionPath(new TreePath(treeNodeDateinamen.getPath()));
206178
case NAME_dateiname -> {
207179
jPanelExtra.removeAll();
208-
jPanelExtra.add(panelDateinamen);
180+
jPanelExtra.add(new PanelDateinamen(daten, this));
209181
}
210182
case NAME_programmset -> {
211183
jPanelExtra.removeAll();
212-
jPanelExtra.add(panelPset);
184+
jPanelExtra.add(new PanelPset(this));
213185
}
214186
case NAME_programmsetImportieren -> {
215187
jPanelExtra.removeAll();
216-
jPanelExtra.add(panelPsetVorlagen);
188+
jPanelExtra.add(new PanelPsetImport(daten, this));
217189
}
218190
default -> {
219191
jPanelExtra.removeAll();
220-
jPanelExtra.add(panelLeer);
192+
jPanelExtra.add(new JPanel());
221193
setTitle("Programmeinstellungen");
222194
}
223195
}

src/main/java/mediathek/mainwindow/MediathekGui.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,11 @@ protected void handleDownloadFinishedEvent(DownloadFinishedEvent msg) {
909909

910910
@Handler
911911
private void handleShowSettingsDialogEvent(ShowSettingsDialogEvent evt) {
912-
SwingUtilities.invokeLater(() -> getSettingsDialog().setVisible(true));
912+
SwingUtilities.invokeLater(() -> {
913+
getSettingsDialog().setVisible(true);
914+
if (!SystemUtils.IS_OS_LINUX)
915+
getSettingsDialog().toFront();
916+
});
913917
}
914918

915919
/**

0 commit comments

Comments
 (0)