mozdev.org

 Mnenhy    

resources:
Selbstdefinierte Kopfzeilen & X-Faces Inhalt Text-Codecs

Ordnerabhängiger Speicher (SeaMonkey, Mozilla, Thunderbird)

Ordnerbaumerbt?Datenordner?genutzter
Datenordner
(global)
|
+- Lokale Ordner
|  +- Ordner1
|  |  +- Ordner2
|  +- Ordner3
|     +- Ordner4
|
+- News-Konto
|  +- Ordner5
|  +- Ordner6
|  +- Ordner7
|
+- E-Mail-Konto
|  +- Ordner8
|     +- Ordner9
...
(ohne Elter)

ja
nein
ja
ja
nein

nein
ja
ja
nein

ja
ja
ja

(immer ja)

nein
ja
nein
nein
ja

ja
nein
nein
ja

nein
nein
nein

(global)

(global)
Ordner1
Ordner1
(global)
Ordner4

News-Konto
News-Konto
News-Konto
Ordner7

(global)
(global)
(global)

Datenordner-Veerbung (Beispiel)

Grundlagen

Wie der Modulname bereits nahelegt, erlangt hiermit jeder Ordner die Möglichkeit zugehörige Daten zu speichern, zum Beispiel die Spaltenanordnung der Nachrichtenliste oder speziellen Einstellungen für die HTML-Darstellung, etc. Ein Ordner, der solche Daten verwaltet, wird im folgenden Datenordner genannt.

Aber nicht jeder Ordner muß ein Datenordner sein, um von dieser Funktionalitätserweiterung zu profitieren. Wenn ein Ordner keine eigenen Daten verwaltet, erbt er die Einstellungen seines Elterordners. Verwaltet auch dieser keine eigenen Daten, wird solange nach oben gesucht, bis entweder ein Datenordner gefunden oder die globalen Einstellungen erreicht werden.

In der Tabelle Datenordner-Vererbung sind ein paar Beispiele versammelt, wobei die als Datenordner konfigurierten Ordner fett hervorgehoben sind.

Anpassen

Ordnerspeicher-Kontextmenü
Ordnerspeicher-Kontextmenü

Mnenhy fügt einen neuen Eintrag "Ordnerspeicher" zum Kontextmenü der Ordnerübersicht hinzu. Dieses Untermenü informiert zum einen über die Vererbungseinstellung des aktuellen Ordners, zum anderen sind hier auch die gespeicherten Daten bearbeitbar. Die angepaßten Daten werden in allen Ordnern sichtbar, die diesen Datenordner nutzen!

Beispiel (auf Basis das obigen zur Datenordner-Vererbung):

Standardmäßig (zum Beipiel wenn die Datei mnenhy-folderstore.rdf im Benutzerprofil leer ist) erben alle Ordner die globalen Einstellungen. Um die gespeicherte Datenmenge zu verkleinern, kann aber die strenge Vererbung im Einstellungsdialog Ordnerspeicher (siehe Bild unten) abgeschaltet werden: Ist "Nur kontoabhängig speichern" aktiviert, können nur die Konten-Ordner selbst Datenordner sein.

Layout

Ohne Mnenhy gilt jede Änderung am Layout der Nachrichtenübersicht für alle Ordner. Dies wird auch durch den Ordnerspeicher zunächst nicht geändert. Wie also nimmt man eigene Anpassungen vor?

Das war alles! Nun werden alle Layout-Anpassungen dieses Ordners auch nur auf diesen und alle, die von ihm erben (zum Beispiel Unterordner ohne eigene Datenspeicherung), angewandt. Soll der Ordner wieder die Einstellungen seines Elters erben, reicht die Wiederherstellung des entfernten Häkchens. Der Verlust der gespeicherten Daten muß im Warndialog bestätigt werden.

Um die Anpassung von Ordnern, die nicht unbedingt Unterordner voneinander sind, aber dieselben Einstellungen nutzen sollen, zu vereinfachen, enthält das Ordner-Kontextmenü zwei weitere Einträge:

Soll das Layout eines Ordners angepaßt werden, dessen Nachrichtenübersicht nicht angezeigt wird (zum Beispiel das globale oder ein Konten-Layout), muß dies über einen der erbenden Ordner geschehen.

Einstellungen überwachen

Datenordner-Eigenschaften
Datenordner-Eigenschaften

Einstellungsdialog Ordnerspeicher
Einstellungsdialog Ordnerspeicher

Ein Datenordner kann allerdings nicht nur Layouts speichern, sondern auch Einstellungen überwachen: Man kann eine Liste von Einstellungen definieren, deren aktuelle Werte beim Verlassen des Ordners gespeichert und beim erneuten Betreten wiederhergestellt werden. Damit kann beispielsweise die HTML-Darstellung für alle Ordner außer dem Junk-Ordner aktiviert werden.

Diese Liste ist über den Eintrag "Ordner-Konfiguration..." im Kontextmenü eines Ordners erreichbar. Es empfiehlt sich, im Zweifelsfall den aktuellen Ordner als Datenordner zu konfigurieren, wenn andere Ordner nicht betroffen sein sollen.

Über die Knöpfe "Neu", "Bearbeiten" und "Löschen" kann sodann die Liste der zu überwachenden Einstellungen konfiguriert werden. Die Liste ist derzeit nicht sortiert, die Einträge erscheinen in der Anlage-Reihenfolge.

Da die Verwaltung der Einstellungsliste so eher unhandlich ist, existiert ein Import-/Export-Mechanismus:

Diese Dateien sind dennoch unhandlich, wenn mehrere Ordner-Konfiguration weitergegeben werden sollen. Daher bietet der Einstellungsdialog Ordnerspeicher die Knöpfe "Benutzereinstellungen importieren" und "Benutzereinstellungen exportieren", die alle diese Einstellungen in einer einzigen Datei verarbeiten.

Sollen keine Einstellungen überwacht werden, können ein paar Rechnerzyklen eingespart werden, indem dies im Einstellungsdialog Ordnerspeicher abgeschaltet wird. Der Effekt ist auf modernen Maschinen aber kaum sichtbar.

Tips & Tricks

  • Um die HTML-Darstellung für einen bestimmten Ordner ein- oder ausschalten zu können, müssen diese Einstellungen beobachtet werden:
    user_pref("mailnews.display.html_as", 0);
    user_pref("mailnews.display.prefer_plaintext", false);
    user_pref("mailnews.display.disallow_mime_handlers", 0);
    
    Das ist besonders für Thunderbirds RSS-Feature nützlich, wo man unter Umständen HTML sehen möchte, dies für Mail und News aber nicht wünscht.
  • Beim Betreten eines Ordners kann auch nutzerdefiniertes JavaScript ausgeführt werden, indem man diese Einstellung beobachtet:
    user_pref("extensions.mnenhy.folderstore.onenter", "alert('murp!');");
    
    Der Einstellungswert (hier: ein alert) wird im Kontext des aktuelle Fensters ausgeführt.
  • Beim Verlassen eines Ordners kann auch nutzerdefiniertes JavaScript ausgeführt werden, indem man diese Einstellung beobachtet:
    user_pref("extensions.mnenhy.folderstore.onexit", "alert('murp!');");
    
    Der Einstellungswert (hier: ein alert) wird im Kontext des aktuelle Fensters ausgeführt.
  • Mit dem obigen onenter-/onexit-Methoden kann man die Nachrichtenanzeige für einen bestimmten Ordner ausblenden, indem man diese Einstellung beobachtet und auf die folgenden Werte setzt:
    extensions.mnenhy.folderstore.onenter
    document.getElementById("threadpane-splitter").setAttribute("state","collapsed");
    ChangeMessagePaneVisibility(IsMessagePaneCollapsed());
    extensions.mnenhy.folderstore.onexit
    document.getElementById("threadpane-splitter").setAttribute("state",null);
    ChangeMessagePaneVisibility(IsMessagePaneCollapsed());
    Dies sollte mindestens für SeaMonkey >= 1.0 und Thunderbird >= 1.5 funktionieren.

Fehlersuche

Das Debuglog zur Fehlersuche im Ordnerspeicher wird durch folgende Zeile in der user.js aktiviert:

user_pref("extensions.mnenhy.log.folderstore", true);