% vim: set textwidth=78 autoindent:

\section{QGIS Plugins}\label{sec:plugins}\index{Plugins}

% when the revision of a section has been finalized, 
% comment out the following line:
%\updatedisclaimer

QGIS wurde mit einer Plugin-Architektur geplant. Dies erlaubt das einfache
Einfügen weiterer Funktionalitäten in das Programm. Viele der
Funktionalitäten in QGIS sind bereits als \textbf{Kern-} oder
\textbf{externe} Plugins implementiert.\index{Plugins!Typen}

\begin{itemize}
\item \textbf{Kern-Plugins} werden durch das QGIS Development Team gewartet
und sind automatisch Teil jeder QGIS Distribution. Sie sind entweder in C++
oder in Python geschrieben. Weitere Informationen zu Kern-Plugins finden sich
in Kapitel~\ref{sec:core_plugins}.
\item \textbf{Externe Plugins} sind derzeit alle in Python geschrieben. Sie
sind in externen Repositories abgelegt und werden durch die jeweiligen
Autoren gewartet und betreut. Sie können in QGIS mit Hilfe des
\filename{Plugin Installer} integriert werden. Weitere Informationen zu
externen Plugins finden sich in Kapitel~\ref{sec:external_plugins}.
\end{itemize}

\subsection{Plugins verwalten}\label{sec:managing_plugins}
\index{Plugins!verwalten} 

Das Verwalten von Plugins bedeutet maßgeblich das Laden und Entladen von
Erweiterungen mit dem \filename{Plugin Manager}. Externe Plugins müssen
zuerst mit dem \filename{Plugin Installer} aus dem jeweiligen Repository
eines Servers integriert werden. 

\subsubsection{Kern-Plugins laden}\label{sec:load_core_plugin}\index{Plugins!laden} 

Das Laden eines Kern-Plugins geschieht über das Menü \mainmenuopt{Plugins} >
\dropmenuopttwo{mActionShowPluginManager}{Plugins verwalten}.

\begin{figure}[ht]
   \begin{center}
   \caption{Plugin Manager \nixcaption}\label{fig:pluginmanager}\smallskip
   \includegraphics[clip=true, width=14cm]{pluginmanager}
\end{center}
\end{figure}

Der \filename{Plugin Manager} listet alle vorhandenen Plugins und ihren
Status (geladen oder nicht geladen). Alle vorhandenen meint in diesem
Zusammenhang alle Kern-Plugins und alle externen Plugins, die mit Hilfe des
\filename{Plugin Installer} Plugins integriert wurden (siehe
Kapitel~\ref{sec:external_plugins}). Abbildung~\ref{fig:pluginmanager} zeigt
den \dialog{Plugin Manager} Dialog. Geladene Plugins haben einen Haken links
neben dem Plugin-Namen und werden beim nächsten Starten der Anwendung erneut
geladen. Abbildung~\ref{fig:pluginmanager} zeigt den Plugin Manager Dialog.

Um ein bestimmtes Plugin zu laden, aktivieren Sie das Kontrollkästchen links
neben dem Plugin-Namen und drücken dann auf \button{OK}. Wenn Sie QGIS
verlassen, wird die Liste der geladenen Plugins beibehalten und beim nächsten
Starten automatisch wieder geladen. 

\begin{Tip}\caption{\textsc{Abstürzende Plugins}}\index{Plugins!Abstürze}
\qgistip{Falls QGIS während des Startens abstürzt, kann der Grund ein
kaputtes Plugin sein. Um erstmal kein Plugin zu laden, können Sie auch die
gespeicherten Einstellungen direkt editieren (vgl. Abschnitt
\ref{subsec:gui_options}). Finden Sie dazu den Block der Plugins und ändern
Sie alle Werte auf 'false'; dann wird das entsprechende Plugin nicht mehr
geladen.
\nix {Um z.B. das Plugin "'Getrennter Text"' nicht automatisch beim Starten
zu laden, sollte der Eintrag in der Datei
\filename{\$HOME/.config/QuantumGIS/qgis.conf} folgendermaßen aussehen:
\usertext{Add Delimited Text Layer=false}.}
Tun Sie dies nun für alle Plugins, die im Block "'Plugins"' stehen. Danach
können Sie QGIS starten und vom \filename{Plugin Manager} Diaolg aus jedes
einzelne Plugin laden und herausfinden, welches das Probleme machende Plugin
ist.
}
\end{Tip}

\subsubsection{Externe Plugins laden}\label{sec:load_external_plugin}\index{Externe Plugins!laden} 

Um externe Plugins in QGIS integrieren zu können sind zwei Schritte
notwendig. 

\begin{enumerate}
\item Laden Sie mit dem \filename{Plugin Installer} das externe Plugin von
dem Repository eines Servers (siehe
Kapitel~\ref{sec:python_plugin_installer}). Das externe Plugin ist nun in
QGIS integriert.
\item Laden Sie nun das externe Plugin mit dem \filename{Plugin Manager}.
\end{enumerate}

\subsubsection{Plugin Installer verwenden}\index{Plugins!Installieren}\label{sec:python_plugin_installer}
\index{Plugins!Python Plugin Installer}\index{Plugins!aktualisieren}

\begin{figure}[ht]
   \begin{center}
   \caption{Externe Python Plugins installieren \nixcaption}
\label{fig:plugininstaller}\smallskip
   \includegraphics[clip=true, width=13cm]{plugininstaller}
\end{center}
\end{figure}

Um ein externes Plugin herunterzuladen und zu installieren, klicken Sie auf
das Menü \mainmenuopt{Plugins} > \dropmenuopttwo{plugin_installer}{Python
Plugins herunterladen}. Der \dialog{Plugin Installer} Dialog öffnet sich mit
dem Reiter \tab{Plugins} (siehe Abbildung~\ref{fig:plugininstaller}). Sie
sehen nun eine Liste aller in den eingebundenen Repositories vorhandenen
Python Plugins sowie die bereits auf dem Rechner installierten. Jedes Plugin
kann dabei folgenden Status haben:
\begin{itemize}
\item \textbf{nicht installiert} - Das Plugin ist auf einem gerade
eingebundenen Repository vorhanden, aber bisher nicht installiert. Um es zu
installieren, selektieren Sie es ung klicken dann auf den Knopf
\button{Plugin installieren}.
\item \textbf{neu} - Der Status entspricht dem obigen, jedoch erscheint
dieses Plugin erstmalig.
\item \textbf{installiert} - Das Plugin ist installiert. Wenn es gleichzeitig
auf noch in einem eingebundenen Repository vorhanden ist, ist der Knopf
\button{Plugin erneut installieren} aktiviert. Falls die installierte Version
des Plugins neuer ist, als die im Repository, erscheint stattdessen der Knopf
\button{Plugin downgraden}.
\item \textbf{aktualisierbar} - Das Plugin ist installiert, aber es gibt eine
aktuellere Version in einem eingebundenen Repository. Der Knopf
\button{Plugin sktualisieren} erscheint.
\item \textbf{ungültig} - Das Plugin ist installiert, funktioniert aber
nicht. Der Grund hierfür ist dann in der Beschreibung des Plugins nachzulesen.
\end{itemize}

\minisec{Plugins Reiter}

Um ein externes Plugin zu installieren, wählen Sie es aus der Liste aus und
klicken Sie dann auf den Knopf \button{Plugin installieren}. Das Plugin wird
nun in einem eigenen Verzeichnis installiert. 

\begin{itemize}
\item \nix{Linux und andere Unices}:\\
./share/qgis/python/plugins \\
/home/\$USERNAME/.qgis/python/plugins
\item \osx{Mac OS X}:\\
./Contents/MacOS/share/qgis/python/plugins \\
/Users/\$USERNAME/.qgis/python/plugins
\item \win{Windows}:\\
C:\textbackslash Programme\textbackslash QGIS\textbackslash
python\textbackslash plugins \\
C:\textbackslash Documente und Einstellungen\textbackslash\$USERNAME\textbackslash
.qgis\textbackslash python\textbackslash plugins
\end{itemize}

Wenn die Installation erfolgreich war, wird eine Bestätigung angezeigt. Danach
können Sie im Menü \mainmenuopt{Plugins} >
\dropmenuopttwo{mActionShowPluginManager}{Plugins verwalten} das neue externe
Plugin selektieren und laden.  

Wenn die Installation fehlschlägt, wird der Grund angezeigt. Die häufigsten
Fehler treten durch eine fehlende Internetverbindung oder fehlende Python
Module auf dem Rechner auf. Im ersten Fall kann es sein, dass Sie einfach
ein wenig warten müssen. Im letzteren Fall sollten Sie die fehlenden Python
Module installieren, und dann nochmals versuchen, das Plugin zu installieren.
\nix{Für Linux sind die notwendigen Module meist in fertigen
Installationspaketen über den Paketmanager installierbar}. \win{Für die
Installation unter MS Windows sollten Sie die Modul Webseiten aufsuchen}.
Falls Sie Proxy-Einstellungen verwenden, sollten Sie diese unter
\mainmenuopt{Einstellungen} > \dropmenuopttwo{mActionOptions}{Optionen} im
Reiter \tab{Proxy} eintragen. 

Der Knopf \button{Gewähltes Plugin deinstallieren} ist nur aktiv, wenn das
ausgewählte Plugin installiert und kein Kern-Plugin ist. Falls Sie ein Update
eines Kern-Plugins installiert haben, können Sie dieses wieder mit dem Knopf
\button{Gewähltes Plugin deinstallieren} löschen und damit die vorherige
Version des QGIS Paketes wieder herstellen. Diese Standardversion kann dann
jedoch nicht deinstalliert werden.

\minisec{Repositorys Reiter}

Der zweite Reiter \tab{Repositorys} zeigt eine Liste von Plugin Repositories.
Als Standard ist nur das QGIS Official Repository vorhanden, aber Sie können
weitere Benutzer Repositories ergänzen, indem Sie auf den Knopf \button{Plugin
Repositories hinzufügen} drücken. Diese Repositories enthalten eine Vielzahl
von mehr oder weniger nützlichen Plugins. Bitte beachten Sie, dass diese
Plugins nicht durch das QGIS Development Team gewartet werden und daher keine
Verantwortung für die Sicherheit und Zuverlässigkeit übernommen werden kann.
Desweiteren können Sie die Repository-Liste auch manuell mit den Knöpfen
\button{Hinzufügen}, \button{Bearbeiten} und \button{Löschen} managen.

\minisec{Optionen Reiter}

Im Reiter \tab{Optionen} werden die Einstellungen des Plugin-Installers
definiert. 

Das Kontrollkästchen \checkbox{Beim Start nach Aktualisierungen suchen}
erlaubt es, nach Updates und neuen externen Plugins zu suchen. Wenn es
aktiviert ist, durchsucht QGIS dazu alle gelisteten und aktivierten
Repositories. Wenn ein neues Plugin oder ein Update für ein bereits
installiertes Plugin gefunden wird, erscheint ein auswählbarer Hinweis in der
Statusleiste. Wenn das Kontrollkästchen deaktiviert ist, wird nach neuen
Plugins oder Updates nur gesucht, wenn der Dialog der \dialog{Plugin
Installer} gestartet wird. Die Häufigkeit, wie oft nach neuen Plugins oder
Updates im Internet gesucht kann zwischen täglich bis monatlich in einem
Dropdown Menü eingestellt werden

Falls Sie Probleme mit der Internetverbindung haben, kann es sein, dass die
Meldung \textit{Suche nach neuen Plugins...} während der gesamten QGIS
Sitzung geöffnet bleibt und dabei einen Programmabsturz verursachen kann.
Deaktivieren Sie in diesem Fall bitte das Kontrollkästchen \checkbox{Beim
Start nach Aktualisierungen suchen}.

Zusätzlich können Sie auch festlegen, welche Arten von Plugins im
\filename{Plugin Installer} angezeigt werden. Im Bereich \textit{Erlaubte
Plugins}, können Sie auswählen unter: 

\begin{itemize}
\item \radiobuttonon{Nur Plugins des offiziellen Repositories anzeigen}
\item \radiobuttonon{Alle Plugins, außer denen als experimentell markierten
anzeigen}
\item \radiobuttonon{Alle inklusive der als experimentell markierten Plugins
anzeigen}
\end{itemize}

\begin{Tip}
 \caption{\textsc{Experimentelle Plugins verwenden}}
\qgistip{
Experimentelle Plugins sind generell nicht verwendbar im produktiven Alltag.
Diese Plugins befinden sich in einem frühen Entwicklungsstadium und sollten
als unvollständig oder Machbarkeitsnachweis angesehen werden. Das QGIS
Entwicklerteam rät von der Verwendung dieser Plugins ab, es sei denn zu
Testzwecken.
}
\end{Tip}

\subsubsection{Datenprovider}\index{Datenprovider}

Datenprovider sind 'spezielle' Plugins, welche die Verbindung zur Datenquelle
erstellen. Standardmäßig unterstützt QGIS Postgis-Layer und disk-basierte
Datenquellen, die von der Bibliothek GDAL/OGR unterstützt werden (siehe
Anhang~\ref{appdx_ogr}). Ein Datenprovider Plugin erweitert QGIS beim Nutzen von
anderen Datenquellen.

Datenprovider Plugins werden automatisch beim Starten im System registriert.
Sie werden nicht durch den Pluginmanager verwaltet, werden jedoch im
Hintergrund benutzt, wenn ein entsprechender Datenlayer in QGIS angezeigt
werden soll.

