\hypertarget{a00842}{\section{Metadata\+Interface Class Reference}
\label{a00842}\index{Metadata\+Interface@{Metadata\+Interface}}
}


Enables implementers to react on deserialization of meta data.  




{\ttfamily \#include $<$Open\+Flipper/\+Base\+Plugin/\+Metadata\+Interface.\+hh$>$}

Inheritance diagram for Metadata\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00842}
\end{center}
\end{figure}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a00842_a751615f64881b7449cba39ee59046a3e}{metadata\+Deserialized} (const Q\+Vector$<$ Q\+Pair$<$ Q\+String, Q\+String $>$ $>$ \&data)=0
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00842_a513d62027376ab406e99ce751a4018e5}{virtual \hyperlink{a00842_a513d62027376ab406e99ce751a4018e5}{$\sim$\+Metadata\+Interface} ()}\label{a00842_a513d62027376ab406e99ce751a4018e5}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a00842_a0ea68fd69a7110306a487bfdf2c10c11}{slot\+Generic\+Metadata\+Deserialized} (Q\+String key, Q\+String value)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a00842_aa5e1440b69ea234a95b72018312b6642}{slot\+Object\+Metadata\+Deserialized} (Q\+String object\+\_\+name, Q\+String value)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Enables implementers to react on deserialization of meta data. 

Detailed description

Using functions such as \hyperlink{a00329_aef84cff271df1537425cba7e3ac54e55}{Base\+Object\+::get\+Comment\+By\+Key()} plugins can attach meta data to objects. This meta data is currently only serialized when taking viewer snapshots. \char`\"{}\+Plugin-\/\+Deserialize\+Screenshot\+Metadata\char`\"{} allows deserializing this metadata from a viewer snapshot. (In the future serialization and deserialization of meta data may occur in other contexts as well.)

Whenever meta gets deserialized the slots in this interface will get triggered. Please refer to the documentation of the individual slots to find out which specific signal suits your needs.

The slots are always triggered in the order \hyperlink{a00842_a0ea68fd69a7110306a487bfdf2c10c11}{slot\+Generic\+Metadata\+Deserialized()}, \hyperlink{a00842_aa5e1440b69ea234a95b72018312b6642}{slot\+Object\+Metadata\+Deserialized()}, slot\+Object\+Metadata\+Deserialized\+Json(). 

Definition at line 89 of file Metadata\+Interface.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00842_a751615f64881b7449cba39ee59046a3e}{\index{Metadata\+Interface@{Metadata\+Interface}!metadata\+Deserialized@{metadata\+Deserialized}}
\index{metadata\+Deserialized@{metadata\+Deserialized}!Metadata\+Interface@{Metadata\+Interface}}
\subsubsection[{metadata\+Deserialized}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Metadata\+Interface\+::metadata\+Deserialized (
\begin{DoxyParamCaption}
\item[{const Q\+Vector$<$ Q\+Pair$<$ Q\+String, Q\+String $>$ $>$ \&}]{data}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [signal]}}}\label{a00842_a751615f64881b7449cba39ee59046a3e}
Can be called by anyone who deserializes meta data, e.\+g. from a viewer snapshot P\+N\+G file. The appropriate slots within this interface will be triggered. \hypertarget{a00842_a0ea68fd69a7110306a487bfdf2c10c11}{\index{Metadata\+Interface@{Metadata\+Interface}!slot\+Generic\+Metadata\+Deserialized@{slot\+Generic\+Metadata\+Deserialized}}
\index{slot\+Generic\+Metadata\+Deserialized@{slot\+Generic\+Metadata\+Deserialized}!Metadata\+Interface@{Metadata\+Interface}}
\subsubsection[{slot\+Generic\+Metadata\+Deserialized}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Metadata\+Interface\+::slot\+Generic\+Metadata\+Deserialized (
\begin{DoxyParamCaption}
\item[{Q\+String}]{key, }
\item[{Q\+String}]{value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a00842_a0ea68fd69a7110306a487bfdf2c10c11}
This low-\/level signal is very inconvenient to use and chances are you want to use one of the other signals.

Triggered for every top level meta data entry. Currently the only top level meta data entries created by Open\+Flipper are \char`\"{}\+Mesh Comments\char`\"{}, \char`\"{}\+Mesh Materials\char`\"{} and \char`\"{}\+View\char`\"{}. \char`\"{}\+Mesh Comments\char`\"{} contains the raw concatenation of all object meta data and is very cumbersome to parse. In most cases it's a better idea to use object\+Metadata\+Deserialized(). 

Definition at line 103 of file Metadata\+Interface.\+hh.

\hypertarget{a00842_aa5e1440b69ea234a95b72018312b6642}{\index{Metadata\+Interface@{Metadata\+Interface}!slot\+Object\+Metadata\+Deserialized@{slot\+Object\+Metadata\+Deserialized}}
\index{slot\+Object\+Metadata\+Deserialized@{slot\+Object\+Metadata\+Deserialized}!Metadata\+Interface@{Metadata\+Interface}}
\subsubsection[{slot\+Object\+Metadata\+Deserialized}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Metadata\+Interface\+::slot\+Object\+Metadata\+Deserialized (
\begin{DoxyParamCaption}
\item[{Q\+String}]{object\+\_\+name, }
\item[{Q\+String}]{value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}}\label{a00842_aa5e1440b69ea234a95b72018312b6642}
Triggered for every piece of object specific meta data encapsulated in \char`\"{}\+Mesh Comments\char`\"{}. 

Definition at line 110 of file Metadata\+Interface.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Base\+Plugin/\hyperlink{a02446}{Metadata\+Interface.\+hh}\end{DoxyCompactItemize}
