<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="13.3">
  <help_text>// Uncomment the following line to change the fontsize and font:
//fontsize=13
fontfamily=Monospaced //possible: SansSerif,Serif,Monospaced


//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Cmd to select multiple elements
// Use Cmd+mouse to select via lasso
//
// Use +/- or Cmd+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Cmd+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////


// This text will be stored with each diagram;  use it for notes.</help_text>
  <zoom_level>6</zoom_level>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>624</x>
      <y>234</y>
      <w>60</w>
      <h>24</h>
    </coordinates>
    <panel_attributes>QListView
fg=#00ff00
bg=#ccffcc
valign=center
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>510</x>
      <y>192</y>
      <w>84</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>Inputline
--
Read user input
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>612</x>
      <y>192</y>
      <w>84</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>ProposalList
--
Shows the results
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>648</x>
      <y>216</y>
      <w>18</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;30.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>522</x>
      <y>234</y>
      <w>60</w>
      <h>24</h>
    </coordinates>
    <panel_attributes>QLineEdit
fg=#00ff00
bg=#ccffcc
valign=center
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>546</x>
      <y>216</y>
      <w>18</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;30.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>564</x>
      <y>156</y>
      <w>18</w>
      <h>48</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;60.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>630</x>
      <y>156</y>
      <w>18</w>
      <h>48</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;60.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>228</x>
      <y>978</y>
      <w>468</w>
      <h>108</h>
    </coordinates>
    <panel_attributes>Albert::Extension::Utils
bg=#c0c0c0
layer=-1
fg=#ff8000
fontsize=15</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>534</x>
      <y>0</y>
      <w>132</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>AlbertApp
--
+showSettings() : void
+showMainWindow(QString) : void
+hideMainWindow() : void
--
The root class
bg=gray
lw=2
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>354</x>
      <y>0</y>
      <w>132</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>SettingsWidget
--
The global user 
settings widget

type=actclass
halign=center
bg=light_gray</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>354</x>
      <y>102</y>
      <w>132</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>HotkeyManager
--
registerHotkey(...) : bool
unregisterHotkey(...) : bool
--
Manage global hotkeys
type=actclass
bg=light_gray</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>534</x>
      <y>102</y>
      <w>132</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>MainWidget
--
Graphical user iface

type=actclass
halign=center
bg=light_gray</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>432</x>
      <y>414</y>
      <w>174</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>ExtensionManager
--
+startSession() : void
+teardownSession() : void
+startQuery(QString) : void
+activate(const QModelIndex &amp;) : void
--
Manages and queries the extensions

bg=light_gray</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>432</x>
      <y>480</y>
      <w>18</w>
      <h>192</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;300.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>480</x>
      <y>54</y>
      <w>66</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=-&gt;&gt;&gt;&gt;</panel_attributes>
    <additional_attributes>90.0;80.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>480</x>
      <y>54</y>
      <w>66</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-&gt;
m1=
m2=1</panel_attributes>
    <additional_attributes>90.0;10.0;10.0;80.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>594</x>
      <y>54</y>
      <w>18</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-&gt;
m1=
m2=1</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>480</x>
      <y>24</y>
      <w>66</w>
      <h>24</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-&gt;
m1=
m2=0,1</panel_attributes>
    <additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>462</x>
      <y>156</y>
      <w>18</w>
      <h>270</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-&gt;
m1=
m2=1</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;430.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>246</x>
      <y>888</y>
      <w>156</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>ConcreteExtension
--
The implementation of a concrete extension. (e.g. Files, Apps, Bookmarks, etc)

fg=#0060c0
bg=#60c0ff
style=wordwrap</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>366</x>
      <y>774</y>
      <w>18</w>
      <h>126</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;190.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>522</x>
      <y>888</y>
      <w>156</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>ConcreteItem
--
The implementation of an item of a concrete extension. (e.g. file-, app- or bookmarkitem)
fg=#0060c0
bg=#60c0ff

style=wordwrap</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>672</x>
      <y>924</y>
      <w>180</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>280.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>228</x>
      <y>864</y>
      <w>468</w>
      <h>102</h>
    </coordinates>
    <panel_attributes>Albert::Extension::ConcreteNamespace
fg=#0060c0
bg=#60c0ff
layer=-1
fontsize=15</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>666</x>
      <y>348</y>
      <w>18</w>
      <h>36</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>648</x>
      <y>252</y>
      <w>18</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>lt=.
fg=#00ff00
bg=#ccffcc</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;130.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>624</x>
      <y>330</y>
      <w>96</w>
      <h>24</h>
    </coordinates>
    <panel_attributes>QAbstractItemModel
fg=#00ff00
bg=#ccffcc
valign=center
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>510</x>
      <y>252</y>
      <w>126</w>
      <h>174</h>
    </coordinates>
    <panel_attributes>lt=&lt;.
&lt; activated
fg=#8000ff</panel_attributes>
    <additional_attributes>10.0;270.0;10.0;190.0;190.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>498</x>
      <y>252</y>
      <w>84</w>
      <h>174</h>
    </coordinates>
    <panel_attributes>lt=&lt;.
&lt; textChanged
fg=#8000ff</panel_attributes>
    <additional_attributes>10.0;270.0;10.0;40.0;40.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>246</x>
      <y>1002</y>
      <w>228</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>Search
--
add(IIndexable*) : void
add(QList&lt;IIndexable*&gt;&amp;) : void
clear() : void
search(const QString &amp;req) : QList&lt;IIndexable*&gt;
--
Indexes the items for a fast / fuzzy lookup</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>468</x>
      <y>1014</y>
      <w>102</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=-&gt;&gt;&gt;&gt;</panel_attributes>
    <additional_attributes>150.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>966</x>
      <y>366</y>
      <w>84</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Note..
bg=#8000ff
fg=#8000ff</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>966</x>
      <y>342</y>
      <w>84</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Note..
bg=#0080ff
fg=#0080ff</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>966</x>
      <y>438</y>
      <w>84</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Note..
bg=#ff8000
fg=#ff8000</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>966</x>
      <y>462</y>
      <w>84</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Note..
bg=#ff0080
fg=#ff0080</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>966</x>
      <y>414</y>
      <w>84</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Note..
bg=#00ff80
fg=#00ff80</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>966</x>
      <y>390</y>
      <w>84</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Note..
bg=#80ff00
fg=#80ff00</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>318</x>
      <y>942</y>
      <w>18</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;..
fg=#0060c0</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>612</x>
      <y>942</y>
      <w>18</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;..
fg=#0060c0</panel_attributes>
    <additional_attributes>10.0;100.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLState</id>
    <coordinates>
      <x>804</x>
      <y>162</y>
      <w>138</w>
      <h>36</h>
    </coordinates>
    <panel_attributes>albert-v0.7.0-alpha
fg=#ff8000
bg=#000000
fontsize=18</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>294</x>
      <y>660</y>
      <w>162</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Interface&gt;&gt;
/IExtension/
aka. QueryHandler
--
/id() : QString/
/initialize(CoreAPI &amp;) : void/
/finalize() : void/
/setupSession() : void/
/teardownSession() : void/
/handleQuery(shared_ptr&lt;Query&gt; *q) : void/
/fallbackQuery(shared_ptr&lt;Query&gt; *q) : void/
--
Offers the core a unified interface
for the extensions
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>486</x>
      <y>156</y>
      <w>90</w>
      <h>270</h>
    </coordinates>
    <panel_attributes>lt=&lt;.
&lt; widgetHidden
&lt; widgetShown
fg=#8000ff</panel_attributes>
    <additional_attributes>10.0;430.0;10.0;80.0;80.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>204</x>
      <y>312</y>
      <w>876</w>
      <h>798</h>
    </coordinates>
    <panel_attributes>Albert::Extension
bg=#c0c0c0
layer=-2
fg=#ff8000
fontsize=15</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>558</x>
      <y>1002</y>
      <w>120</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Interface&gt;&gt;
/IIndexable/
--
aliases() : QStringList
--
Interface for objects that
can be indexed by the
search</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>558</x>
      <y>696</y>
      <w>168</w>
      <h>108</h>
    </coordinates>
    <panel_attributes>Query
--
+searchTerm():QString
+addMatch(Match):void
+addMatches(vector&lt;Match&gt;):void
+removeMatches(Ext):void
+reset():void
--
-impl:QueryPrivate
--
Offers the extension developer an
API to the query context. PRoxy
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>828</x>
      <y>1260</y>
      <w>108</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>/ActionItem/
valign=center
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>834</x>
      <y>1560</y>
      <w>96</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>/ActionNode/
valign=center
halign=center</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>582</x>
      <y>1506</y>
      <w>108</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>*Files::Item*
--
Item(path)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>462</x>
      <y>1518</y>
      <w>108</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>*DesktopApps::Item*
--
Item()</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>228</x>
      <y>510</y>
      <w>96</w>
      <h>54</h>
    </coordinates>
    <panel_attributes>CoreAPI
--
-impl:CoreApiPrivate
--
Offers the developer
a facade to core</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>564</x>
      <y>1572</y>
      <w>282</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>450.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>876</x>
      <y>1338</y>
      <w>18</w>
      <h>234</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;370.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>684</x>
      <y>1560</y>
      <w>162</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>250.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>462</x>
      <y>1392</y>
      <w>108</w>
      <h>48</h>
    </coordinates>
    <panel_attributes>*AppAction*
--
AppAction(CmdAction)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>834</x>
      <y>1662</y>
      <w>102</w>
      <h>36</h>
    </coordinates>
    <panel_attributes>*StandardItem*
--
StandardItem(action)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>876</x>
      <y>1638</y>
      <w>24</w>
      <h>36</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;20.0;40.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>606</x>
      <y>1404</y>
      <w>72</w>
      <h>42</h>
    </coordinates>
    <panel_attributes>*OpenAction*
--
OpenAction()</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>720</x>
      <y>1404</y>
      <w>72</w>
      <h>42</h>
    </coordinates>
    <panel_attributes>*RevealAction*
--
RevealAction()</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>738</x>
      <y>1506</y>
      <w>48</w>
      <h>24</h>
    </coordinates>
    <panel_attributes>*File*
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>684</x>
      <y>1512</y>
      <w>66</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;90.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>648</x>
      <y>1440</y>
      <w>126</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;190.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>756</x>
      <y>1440</y>
      <w>18</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>624</x>
      <y>1440</y>
      <w>48</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
m1=creates</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>624</x>
      <y>1440</y>
      <w>126</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
m1=creates</panel_attributes>
    <additional_attributes>190.0;10.0;10.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>744</x>
      <y>1338</y>
      <w>102</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>150.0;10.0;10.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>660</x>
      <y>1338</y>
      <w>180</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>280.0;10.0;10.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>510</x>
      <y>1434</y>
      <w>60</w>
      <h>96</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=* actions
</panel_attributes>
    <additional_attributes>10.0;140.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>558</x>
      <y>1332</y>
      <w>282</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>450.0;10.0;10.0;100.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>342</x>
      <y>1530</y>
      <w>108</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>*BookMarks::Item*
--
Item(name, url)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>444</x>
      <y>1584</y>
      <w>402</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>650.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>222</x>
      <y>1542</y>
      <w>108</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>*Websearch::Item*
--
Item(url)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>324</x>
      <y>1596</y>
      <w>522</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>850.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>636</x>
      <y>372</y>
      <w>294</w>
      <h>192</h>
    </coordinates>
    <panel_attributes>QueryPrivate
--
typedef pair&lt;A2Item, short&gt; Match
--
+searchTerm():QString
+addMatch(Match):void
+addMatches(vector&lt;Match&gt;):void
+removeMatches(Ext):void
+reset():void
+rowCount(const QModelIndex &amp; idx)):int
+columnCount(const QModelIndex &amp;parent):int
+data(const QModelIndex &amp; idx, int role):QVariant
+flags(const QModelIndex &amp; idx):ItemFlags
+parent(const QModelIndex &amp; idx):QModelIndex
+index(int row, int column, const QModelIndex &amp;idx):QModelIndex
+hasChildren(const QModelIndex &amp; parent):bool
--
-searchTerm:QString
-matches:vector&lt;Match&gt; 
-threadCounter:uchar
--
Adapts the matchlist to the AbstractItemModel</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>642</x>
      <y>558</y>
      <w>66</w>
      <h>150</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=impl</panel_attributes>
    <additional_attributes>10.0;230.0;60.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>228</x>
      <y>342</y>
      <w>186</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>CoreApiPrivate
--
+hideApp():void
+showApp():void
+showSettings():void
+sessionIsActive():bool
+currentQuery():Query
+globalActions(QString) : vector&lt;Action&gt;
+dynamicActions(Item) : vector&lt;Action&gt;
+apiVersion():uint
--
-impl:QueryPrivate</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>282</x>
      <y>456</y>
      <w>36</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=impl</panel_attributes>
    <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>258</x>
      <y>456</y>
      <w>18</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;90.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>516</x>
      <y>480</y>
      <w>150</w>
      <h>228</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
m1=creates/starts</panel_attributes>
    <additional_attributes>120.0;360.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>450</x>
      <y>756</y>
      <w>120</w>
      <h>24</h>
    </coordinates>
    <panel_attributes>lt=&lt;-&gt;&gt;&gt;&gt;
accepts/handles</panel_attributes>
    <additional_attributes>180.0;20.0;10.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>318</x>
      <y>480</y>
      <w>126</w>
      <h>42</h>
    </coordinates>
    <panel_attributes>lt=&lt;-&gt;&gt;&gt;&gt;&gt;
</panel_attributes>
    <additional_attributes>10.0;50.0;190.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>318</x>
      <y>558</y>
      <w>48</w>
      <h>114</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
</panel_attributes>
    <additional_attributes>10.0;10.0;60.0;170.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>948</x>
      <y>786</y>
      <w>102</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>/ActionItem/
--
/+id():QString/
/+name():QString/
/+info():QString/
/+icon():QIcon/
/+activate():void/</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>840</x>
      <y>918</y>
      <w>210</w>
      <h>48</h>
    </coordinates>
    <panel_attributes>/ActionNode/
--
+hasChildren():bool
+children():vector&lt;shared_ptr&lt;A2Item&gt;&gt;
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>990</x>
      <y>858</y>
      <w>18</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>684</x>
      <y>618</y>
      <w>132</w>
      <h>48</h>
    </coordinates>
    <panel_attributes>Match
--
+item:shared_ptr&lt;A2Item&gt;
+score:short
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>930</x>
      <y>690</y>
      <w>18</w>
      <h>240</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;380.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>396</x>
      <y>798</y>
      <w>174</w>
      <h>102</h>
    </coordinates>
    <panel_attributes>lt=&lt;-</panel_attributes>
    <additional_attributes>270.0;10.0;10.0;150.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>708</x>
      <y>660</y>
      <w>42</w>
      <h>48</h>
    </coordinates>
    <panel_attributes>lt=&lt;-</panel_attributes>
    <additional_attributes>50.0;10.0;10.0;60.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>600</x>
      <y>426</y>
      <w>48</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;-</panel_attributes>
    <additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>270</x>
      <y>558</y>
      <w>18</w>
      <h>342</h>
    </coordinates>
    <panel_attributes>lt=&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;550.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>894</x>
      <y>594</y>
      <w>156</w>
      <h>102</h>
    </coordinates>
    <panel_attributes>TreeItem
--
+data():shared_ptr&lt;A2Item&gt;
+parent():TreeItem *
+numChildren():int
+child(int row):TreeItem*
+addChild(unique_ptr&lt;TreeItem&gt;&amp;&amp;child):void 
--
-parent_:TreeItem*
-data_:shared_ptr&lt;A2Item&gt;
-children_:std::vector&lt;unique_ptr&lt;TreeItem&gt;&gt; </panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>810</x>
      <y>636</y>
      <w>96</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;10.0;140.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>810</x>
      <y>660</y>
      <w>84</w>
      <h>270</h>
    </coordinates>
    <panel_attributes>lt=-&gt;</panel_attributes>
    <additional_attributes>10.0;10.0;120.0;430.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>420</x>
      <y>54</y>
      <w>18</w>
      <h>60</h>
    </coordinates>
    <panel_attributes>lt=-&gt;&gt;&gt;&gt;</panel_attributes>
    <additional_attributes>10.0;80.0;10.0;10.0</additional_attributes>
  </element>
</diagram>
