Files
adfmanager/README.md
T
2026-11-01 15:38:43 +01:00

110 lines
5.2 KiB
Markdown

# ADF Manager
Grafisches Frontend für [`xdftool`](https://github.com/cnvogelg/amitools) (Teil von amitools) zum Verwalten von Amiga-Disk-Images (ADF) unter Linux. Gedacht als Ersatz für das mühsame Einzel-Kopieren per Kommandozeile, wenn sich ADFs nicht bequem mounten lassen.
Teil von **Projekt Hirnfrei**. Entwickler: Dany Thinnes.
## Funktionen
- **Zwei-Spalten-Ansicht:** links der Inhalt der ADF, rechts ein Ordner auf dem PC
- Navigation in beiden Ansichten per Doppelklick (links auch in ADF-Unterordner, `..` führt eine Ebene hoch)
- **ADF → PC:** ein oder mehrere Einträge (auch ganze Ordner) in den rechts angezeigten PC-Ordner kopieren
- **PC → ADF:** ein oder mehrere Dateien/Ordner in den links angezeigten ADF-Ordner kopieren. Existiert ein Eintrag bereits in der ADF, wird er nach Rückfrage vorher gelöscht
- Löschen, Umbenennen und Anlegen von Ordnern in der ADF
- Alle Einträge eines Vorgangs werden in **einem** `xdftool`-Aufruf verarbeitet (schnell auch bei vielen Dateien)
- Versteckte Dateien auf der PC-Seite ein-/ausblendbar
- Spaltenbreiten frei einstellbar; Fenstergröße und Spaltenbreiten werden gespeichert
- **Auswerfen:** Liegt die ADF auf einer SD-Karte oder einem anderen Wechseldatenträger, kann das Medium direkt aus dem Programm ausgehängt und abgeschaltet werden
- Protokollfenster mit den ausgeführten `xdftool`-Befehlen und deren Ausgabe
## Abhängigkeiten
### Zur Laufzeit
| Paket | Zweck |
|-------|-------|
| `amitools` (liefert `xdftool`) | Eigentliche Arbeit an den ADF-Images. Die reine Python-Variante genügt, `vamos` wird nicht benötigt |
| `udisks2` (optional) | Nur für die Funktion „Auswerfen“ (`udisksctl`) |
`xdftool` muss im `PATH` liegen. Alternativ kann der Pfad im Programm unter *Datei → xdftool-Pfad …* eingestellt werden.
### Zum Bauen
- C++17-Compiler (GCC oder Clang)
- CMake ≥ 3.16
- Qt 6 (Modul *Widgets*)
## Installation von xdftool
Unter Arch Linux ist Python „externally managed“, daher am besten isoliert installieren:
```
sudo pacman -S python-pipx
pipx install amitools
```
(Alternativ in einem eigenen virtualenv mit `pip install amitools`.) Danach sollte `xdftool` im Terminal verfügbar sein:
```
xdftool --help
```
## Bauen (Linux / Arch)
```
sudo pacman -S --needed base-devel cmake qt6-base
git clone <Repository-URL> adfmanager
cd adfmanager
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
```
Starten:
```
./build/adfmanager [datei.adf]
```
Eine ADF kann optional als Kommandozeilenargument übergeben werden.
## Bedienung
1. **ADF öffnen …** und ein Image wählen (`.adf`, `.ADF`, `.adz`).
2. Links den gewünschten ADF-Ordner öffnen, rechts den PC-Ordner wählen (**Ordner wählen …** oder per Doppelklick navigieren).
3. Einträge markieren (Mehrfachauswahl mit Strg/Umschalt) und über die Pfeil-Buttons in der Mitte kopieren.
4. Das Ziel beim Kopieren **in** die ADF ist immer der links angezeigte Ordner („Aktueller ADF-Ordner“).
## Hinweise
- **Änderungen werden direkt in die ADF geschrieben.** Für wichtige Images vorher eine Sicherungskopie anlegen.
- Das Programm wertet die Ausgabe von `xdftool <image> list` aus. Sollte der Baum leer bleiben, steht die Rohausgabe im Protokollfenster. Das ist hilfreich, falls eine andere amitools-Version ein anderes Ausgabeformat verwendet.
- Unterstützt werden die Dateisysteme, die `xdftool` beherrscht (OFS/FFS-Disketten-Images).
- Die „Auswerfen“-Erkennung ist eine Heuristik: Als Wechseldatenträger gelten Medien mit gesetztem *removable*-Flag, SD-Karten am eingebauten Kartenleser und USB-Datenträger. Systemverzeichnisse (`/`, `/home`, …) werden nie angeboten.
## Windows (ungetestet)
> **Hinweis:** Dieser Abschnitt ist unverifiziert. Das Programm wurde bisher ausschließlich unter Linux (Arch) getestet.
Der Quellcode verwendet ausschließlich Qt und ist plattformneutral, sollte sich also mit CMake und Qt 6 auch unter Windows bauen lassen. Zu beachten:
- `xdftool` ist ein Python-Programm. Laut amitools-Dokumentation ist Windows „heavily untested“, die reine Python-Variante (`pip install amitools`) soll aber für alle Werkzeuge außer `vamos` funktionieren. Python (≥ 3.8) muss installiert sein; `pip` legt `xdftool.exe` im `Scripts`-Ordner der Python-Installation ab. Liegt dieser nicht im `PATH`, den Pfad im Programm einstellen.
- Die Funktion „Auswerfen“ ist unter Windows nicht verfügbar (Button bleibt deaktiviert).
Beispiel für den Build (Qt aus dem Qt-Installer, Pfad anpassen):
```
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:/Qt/6.x.x/mingw_64
cmake --build build
windeployqt build/adfmanager.exe
```
## Lizenz
Copyright (C) 2026 Dany Thinnes
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version.
Die Veröffentlichung erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber **ohne jede Gewährleistung**; sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License (siehe Datei `LICENSE`).
SPDX-License-Identifier: GPL-3.0-or-later