summaryrefslogtreecommitdiffstats
path: root/doxygen/html/fbgui_8h_source.html
blob: dd847df0cae91cd5e15a2c154adddc4ee5b537e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ndgui/NetworkDiscovery: /home/niklas/workspace/fbgui/src/fbgui.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.7.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ndgui/NetworkDiscovery</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('fbgui_8h.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<h1>/home/niklas/workspace/fbgui/src/fbgui.h</h1>  </div>
</div>
<div class="contents">
<a href="fbgui_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2010,2011 - RZ Uni Freiburg</span>
<a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010,2011 - OpenSLX Project</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * This program/file is free software distributed under the GPL version 2.</span>
<a name="l00006"></a>00006 <span class="comment"> * See http://openslx.org/COPYING</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * If you have any feedback please consult http://openslx.org/feedback and</span>
<a name="l00009"></a>00009 <span class="comment"> * send your feedback to feedback@openslx.org</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * General information about OpenSLX can be found under http://openslx.org</span>
<a name="l00012"></a>00012 <span class="comment"> *</span>
<a name="l00013"></a>00013 <span class="comment"> *</span>
<a name="l00014"></a>00014 <span class="comment"> *         Main class of the fbgui:</span>
<a name="l00015"></a>00015 <span class="comment"> *              - Manages display of components and their communications</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef FBGUI_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define FBGUI_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;QWSServer&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;QtGui&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;QtWebKit&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;QxtCore&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="comment">// Internal default settings</span>
<a name="l00028"></a><a class="code" href="fbgui_8h.html#af3f6779ff17d09231643871406a7e2d6">00028</a> <span class="preprocessor">#define DEFAULT_URL &quot;http://www.google.com&quot;</span>
<a name="l00029"></a><a class="code" href="fbgui_8h.html#a72dec01fe61a3dd3adff2c76ddcf73d9">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_DOWNLOAD_DIR &quot;/tmp/fbgui&quot;</span>
<a name="l00030"></a><a class="code" href="fbgui_8h.html#a814585e9e2b41f2f341c6368c39ba0c7">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_CONFIG_PATH &quot;/etc/fbgui.conf&quot;</span>
<a name="l00031"></a><a class="code" href="fbgui_8h.html#a11da69a8b651c78c98c97b75901e3623">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_LOG_FILE_PATH &quot;/tmp/fbgui.log&quot;</span>
<a name="l00032"></a><a class="code" href="fbgui_8h.html#a915e7a142e3b3029868f9a51d1ba0074">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_UPDATE_INTERVAL 1;</span>
<a name="l00033"></a><a class="code" href="fbgui_8h.html#afaf369857151b5aee3af4d54ede70be0">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_QRC_HTML_DIR &quot;:/html&quot;</span>
<a name="l00034"></a><a class="code" href="fbgui_8h.html#adf575b1b7c3a47fcbf7042f93427484f">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_FILE_TRIGGER &quot;/tmp/fbgui/trigger&quot;</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036 <span class="comment">// Global settings variables</span>
<a name="l00037"></a>00037 <span class="keyword">extern</span> QString <a class="code" href="fbgui_8h.html#afb25b3fa09e65955980fa9a16731bbd0">logFilePath</a>;
<a name="l00038"></a>00038 <span class="keyword">extern</span> QString <a class="code" href="fbgui_8h.html#ad42c15a7246485e3df63dd9a7be544fc">ipConfigFilePath</a>;
<a name="l00039"></a>00039 <span class="keyword">extern</span> QThread <a class="code" href="fbgui_8cpp.html#aa36620726ddc7654b86bab9bcaa704e2">dmThread</a>;
<a name="l00040"></a>00040 <span class="keyword">extern</span> QString <a class="code" href="fbgui_8h.html#ad208253f1a4f94f7a3e30f4089c03b84">serialLocation</a>;
<a name="l00041"></a>00041 <span class="keyword">extern</span> QString <a class="code" href="fbgui_8h.html#a69c37597f73429d9f75c90091e2980f0">fileToTriggerURL</a>;
<a name="l00042"></a>00042 <span class="keyword">extern</span> QString <a class="code" href="fbgui_8h.html#a5a44722efa513c3cee8993f0cad3f44c">sessionID</a>;
<a name="l00043"></a>00043 <span class="keyword">extern</span> QString <a class="code" href="downloadmanager_8h.html#a77498c74d71edea0b1fddec0565ca859">binPath</a>;
<a name="l00044"></a>00044 <span class="keyword">extern</span> QString <a class="code" href="downloadmanager_8h.html#aa99ae0a965d4bde3989d259fadc4f0ec">downloadPath</a>;
<a name="l00045"></a>00045 <span class="keyword">extern</span> QUrl <a class="code" href="downloadmanager_8h.html#a234e8a60f8c04f267847d0f548e48cb9">baseURL</a>;
<a name="l00046"></a>00046 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="fbgui_8cpp.html#a88fe7f60c1db6bc0d529d647128975da">debugMode</a>;
<a name="l00047"></a>00047 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="downloadmanager_8h.html#afb7bae46ad8e23553477b181275e66fa">updateInterval</a>;
<a name="l00048"></a>00048 
<a name="l00049"></a><a class="code" href="classfbgui.html">00049</a> <span class="keyword">class </span><a class="code" href="classfbgui.html">fbgui</a>: <span class="keyword">public</span> QMainWindow {
<a name="l00050"></a>00050 Q_OBJECT
<a name="l00051"></a>00051 
<a name="l00052"></a>00052 <span class="keyword">public</span>:
<a name="l00053"></a>00053    <a class="code" href="classfbgui.html#a8196610ad9d7956730bfd42cd79d3ad5">fbgui</a>();
<a name="l00054"></a>00054    <a class="code" href="classfbgui.html#ac2f1a728b8d904e5eeed2a60aec59b40">~fbgui</a>();
<a name="l00055"></a>00055 
<a name="l00056"></a>00056 <span class="keyword">public</span> slots:
<a name="l00057"></a>00057         <span class="keywordtype">void</span> <a class="code" href="classfbgui.html#ac9dbf026d41c03f5eb14f342ccc96d61">init</a>();
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="keyword">private</span>:
<a name="l00060"></a>00060    <span class="comment">//-------------------</span>
<a name="l00061"></a>00061    <span class="comment">//   layout setup:</span>
<a name="l00062"></a>00062    <span class="comment">//-------------------</span>
<a name="l00063"></a>00063    <span class="comment">// Sets the layout depending on the debug mode:</span>
<a name="l00064"></a>00064    <span class="comment">//   no debug or debugMode = 0 -&gt; only browser shown.</span>
<a name="l00065"></a>00065    <span class="comment">//   debugMode = 1             -&gt; split main window in browser and debug console.</span>
<a name="l00066"></a>00066    <span class="keywordtype">void</span> setupLayout();
<a name="l00067"></a>00067    <span class="comment">// Create all actions for the GUI. (Currently only quit.)</span>
<a name="l00068"></a>00068    <span class="keywordtype">void</span> createActions();
<a name="l00069"></a>00069    <span class="comment">// Create a debug console widget as QTextEdit in order to print debug messages</span>
<a name="l00070"></a>00070    <span class="comment">// directly within the GUI. This was needed since ttys can&#39;t really be used</span>
<a name="l00071"></a>00071    <span class="comment">// for debugging purposes in the preboot environment.</span>
<a name="l00072"></a>00072    <span class="keywordtype">void</span> createDebugConsole();
<a name="l00073"></a>00073 
<a name="l00074"></a>00074    <span class="comment">//----------------------------------------</span>
<a name="l00075"></a>00075    <span class="comment">//   control the display of components:</span>
<a name="l00076"></a>00076    <span class="comment">//----------------------------------------</span>
<a name="l00077"></a>00077    <span class="comment">// watches for the file triggering the loading of the URL.</span>
<a name="l00078"></a>00078    <span class="comment">// the file can be specified by the corresponding option.</span>
<a name="l00079"></a>00079    <span class="keywordtype">void</span> watchForTrigger();
<a name="l00080"></a>00080    <span class="keywordtype">bool</span> checkHost() <span class="keyword">const</span>;
<a name="l00081"></a>00081    <span class="keywordtype">void</span> loadURL();
<a name="l00082"></a>00082    QByteArray generatePOSTData();
<a name="l00083"></a>00083 
<a name="l00084"></a>00084    <span class="comment">//----------------------------------</span>
<a name="l00085"></a>00085    <span class="comment">//   widgets constituing the gui:</span>
<a name="l00086"></a>00086    <span class="comment">//----------------------------------</span>
<a name="l00087"></a>00087    <span class="comment">// QWebView for displaying internet content</span>
<a name="l00088"></a>00088    QWebView* _webView;
<a name="l00089"></a>00089    <span class="comment">// QSplitter to split the main window in two resizable frames.</span>
<a name="l00090"></a>00090    QSplitter* _splitter;
<a name="l00091"></a>00091    <span class="comment">// QTextEdit implementing a minimalistic debug console.</span>
<a name="l00092"></a>00092    QTextEdit* _debugConsole;
<a name="l00093"></a>00093 
<a name="l00094"></a>00094    <span class="comment">//------------------</span>
<a name="l00095"></a>00095    <span class="comment">//   action list:</span>
<a name="l00096"></a>00096    <span class="comment">//------------------</span>
<a name="l00097"></a>00097    <span class="comment">// closes the main window provoking the application to quit.</span>
<a name="l00098"></a>00098    QAction* _quit;
<a name="l00099"></a>00099    <span class="comment">// triggers toggleDebugConsole()</span>
<a name="l00100"></a>00100    QAction* _toggleDebugConsole;
<a name="l00101"></a>00101 
<a name="l00102"></a>00102    <span class="comment">// watcher to detect changes in the observed directory.</span>
<a name="l00103"></a>00103    QFileSystemWatcher* _watcher;
<a name="l00104"></a>00104 
<a name="l00105"></a>00105 <span class="keyword">private</span> slots:
<a name="l00106"></a>00106    <span class="comment">// toggles debug console when action _toggleDebugConsole happens.</span>
<a name="l00107"></a>00107    <span class="keywordtype">void</span> toggleDebugConsole();
<a name="l00108"></a>00108 
<a name="l00109"></a>00109    <span class="comment">// This function is triggered by fileChanged Signal of _watcher.</span>
<a name="l00110"></a>00110    <span class="comment">// It deletes _watcher, since we don&#39;t need it anymore and tries to load URL.</span>
<a name="l00111"></a>00111    <span class="keywordtype">void</span> prepareURLLoad();
<a name="l00112"></a>00112    <span class="keywordtype">void</span> loadURLDone(<span class="keywordtype">bool</span> success);
<a name="l00113"></a>00113 
<a name="l00114"></a>00114    <span class="comment">// shut off the system</span>
<a name="l00115"></a>00115    <span class="keywordtype">void</span> performShutDown();
<a name="l00116"></a>00116    <span class="comment">// reboot the system</span>
<a name="l00117"></a>00117    <span class="keywordtype">void</span> performReboot();
<a name="l00118"></a>00118    <span class="comment">// shows &quot;loading system&quot; page</span>
<a name="l00119"></a>00119    <span class="keywordtype">void</span> loadSystem();
<a name="l00120"></a>00120    <span class="comment">// prepares kexec by loading downloaded initramfs, kernel into kexec</span>
<a name="l00121"></a>00121    <span class="keywordtype">void</span> prepareKexec();
<a name="l00122"></a>00122    <span class="comment">// executes: kexec -e</span>
<a name="l00123"></a>00123    <span class="keywordtype">void</span> runKexec();
<a name="l00124"></a>00124 };
<a name="l00125"></a>00125 
<a name="l00126"></a>00126 <span class="preprocessor">#endif // FBGUI_H</span>
</pre></div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="fbgui_8h.html">fbgui.h</a>      </li>
      <li class="footer">Generated on Wed Nov 9 2011 15:24:33 for ndgui/NetworkDiscovery by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>


</body>
</html>