OSDN Git Service

Some more documentation updates.
authorLoRd_MuldeR <mulder2@gmx.de>
Mon, 19 Dec 2016 19:58:42 +0000 (20:58 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Mon, 19 Dec 2016 19:58:42 +0000 (20:58 +0100)
69 files changed:
docs/annotated.html
docs/classes.html
docs/d0/d8a/class_m_utils_1_1_update_checker.html
docs/d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html
docs/d1/d01/class_m_utils_1_1_hash_1_1_blake2.html
docs/d1/d08/class_m_utils_1_1_job_object-members.html
docs/d1/d0d/class_m_utils_1_1_update_checker_info.html
docs/d1/d32/class_m_utils_1_1_version.html
docs/d1/d9c/class_m_utils_1_1_hash_1_1_keccak-members.html
docs/d1/dd9/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t-members.html
docs/d2/d52/class_m_utils_1_1_taskbar7.html
docs/d2/d7d/class_m_utils_1_1_update_checker-members.html
docs/d2/db5/_c_p_u_features_8h_source.html
docs/d2/ddd/class_m_utils_1_1_update_checker_info-members.html
docs/d3/d13/class_m_utils_1_1_version-members.html
docs/d3/d35/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct-members.html
docs/d3/da6/namespace_m_utils.html [new file with mode: 0644]
docs/d3/dc6/class_m_utils_1_1_taskbar7-members.html
docs/d5/d3b/_global_8h.html
docs/d5/d3b/_global_8h_source.html
docs/d5/de1/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t-members.html
docs/d5/dfe/class_m_utils_1_1_i_p_c_channel.html
docs/d7/dee/class_m_utils_1_1_i_p_c_channel-members.html
docs/da/d35/class_m_utils_1_1_registry_1_1_registry_key.html
docs/dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html
docs/dc/db3/class_m_utils_1_1_registry_1_1_registry_key-members.html
docs/dc/dd3/class_m_utils_1_1_job_object.html
docs/dc/df9/class_m_utils_1_1_hash_1_1_blake2-members.html
docs/dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html
docs/dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html
docs/globals.html [new file with mode: 0644]
docs/globals_defs.html [new file with mode: 0644]
docs/index.html
docs/menudata.js
docs/namespacemembers.html [new file with mode: 0644]
docs/namespacemembers_func.html [new file with mode: 0644]
docs/namespaces.html [new file with mode: 0644]
docs/search/all_1.js
docs/search/all_3.js
docs/search/all_4.js
docs/search/all_5.js
docs/search/all_6.js
docs/search/all_7.js
docs/search/all_8.js
docs/search/all_9.js
docs/search/all_a.js
docs/search/all_b.js
docs/search/all_c.js
docs/search/all_d.js
docs/search/all_e.js
docs/search/all_f.html [new file with mode: 0644]
docs/search/all_f.js [new file with mode: 0644]
docs/search/defines_0.html [new file with mode: 0644]
docs/search/defines_0.js [new file with mode: 0644]
docs/search/functions_0.js
docs/search/functions_1.js
docs/search/functions_2.js
docs/search/functions_3.js
docs/search/functions_4.js
docs/search/functions_5.js
docs/search/functions_6.html [new file with mode: 0644]
docs/search/functions_6.js [new file with mode: 0644]
docs/search/functions_7.html [new file with mode: 0644]
docs/search/functions_7.js [new file with mode: 0644]
docs/search/namespaces_0.html [new file with mode: 0644]
docs/search/namespaces_0.js [new file with mode: 0644]
docs/search/searchdata.js
include/MUtils/Global.h
include/MUtilsInfo.dox

index 4c6d3fb..f6d0a37 100644 (file)
@@ -65,7 +65,7 @@ $(function() {
 <div class="contents">
 <div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>MUtils</b></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="d3/da6/namespace_m_utils.html" target="_self">MUtils</a></td><td class="desc"></td></tr>
 <tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>CPUFetaures</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html" target="_self">_cpu_info_t</a></td><td class="desc"></td></tr>
 <tr id="row_0_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>Hash</b></td><td class="desc"></td></tr>
index 19e6e16..0501786 100644 (file)
@@ -71,19 +71,19 @@ $(function() {
 </td><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
 </td><td></td></tr>
 <tr><td></td></tr>
-<tr><td valign="top"><a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a> (MUtils::CPUFetaures)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a> (MUtils)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="da/d35/class_m_utils_1_1_registry_1_1_registry_key.html">RegistryKey</a> (MUtils::Registry)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a> (MUtils)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a> (MUtils::CPUFetaures)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a> (<a class="el" href="d3/da6/namespace_m_utils.html">MUtils</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="da/d35/class_m_utils_1_1_registry_1_1_registry_key.html">RegistryKey</a> (MUtils::Registry)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a> (<a class="el" href="d3/da6/namespace_m_utils.html">MUtils</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td valign="top"><a class="el" href="dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html">_os_version_t</a> (MUtils::OS::Version)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_j"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;j&#160;&#160;</div></td></tr></table>
 </td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a> (MUtils)&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a> (<a class="el" href="d3/da6/namespace_m_utils.html">MUtils</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
 </td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
 </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a> (MUtils)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html">spongeStateStruct</a> (MUtils::Hash::Internal::KeccakImpl)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a> (<a class="el" href="d3/da6/namespace_m_utils.html">MUtils</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html">spongeStateStruct</a> (MUtils::Hash::Internal::KeccakImpl)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td valign="top"><a class="el" href="d1/d01/class_m_utils_1_1_hash_1_1_blake2.html">Blake2</a> (MUtils::Hash)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</div></td></tr></table>
 </td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="d1/d32/class_m_utils_1_1_version.html">Version</a> (MUtils)&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="d1/d32/class_m_utils_1_1_version.html">Version</a> (<a class="el" href="d3/da6/namespace_m_utils.html">MUtils</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td></td><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a class="el" href="dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html">Keccak</a> (MUtils::Hash)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a> (MUtils)&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html">Keccak</a> (MUtils::Hash)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a> (<a class="el" href="d3/da6/namespace_m_utils.html">MUtils</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
 <div class="qindex"><a class="qindex" href="#letter__">_</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_j">j</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
index 71f38eb..c2c9734 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 2cc3e56..ff07b6e 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Hash</b></li><li class="navelem"><b>Internal</b></li><li class="navelem"><b>KeccakImpl</b></li><li class="navelem"><a class="el" href="../../d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html">spongeStateStruct</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Hash</b></li><li class="navelem"><b>Internal</b></li><li class="navelem"><b>KeccakImpl</b></li><li class="navelem"><a class="el" href="../../d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html">spongeStateStruct</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 46dc3e4..17c030c 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../d1/d01/class_m_utils_1_1_hash_1_1_blake2.html">Blake2</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../d1/d01/class_m_utils_1_1_hash_1_1_blake2.html">Blake2</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 2adf871..dcd35c3 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 67915cd..d01f237 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 7d7e471..445138a 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d1/d32/class_m_utils_1_1_version.html">Version</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d1/d32/class_m_utils_1_1_version.html">Version</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 54099ef..a0914ea 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html">Keccak</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html">Keccak</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 8628013..b8de8d8 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>CPUFetaures</b></li><li class="navelem"><a class="el" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>CPUFetaures</b></li><li class="navelem"><a class="el" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index e942f77..af8d6d4 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index cf4a0c6..b9bf2fa 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 2528491..6d0d488 100644 (file)
@@ -67,7 +67,7 @@ $(function() {
 <div class="title">CPUFeatures.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// MuldeR&#39;s Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">//MUtils</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d5/d3b/_global_8h.html">MUtils/Global.h</a>&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">//Qt</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;QStringList&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">namespace </span>CPUFetaures</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="comment">//CPU flags</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_MMX   = 0x01;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE   = 0x02;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE2  = 0x04;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE3  = 0x08;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSSE3 = 0x10;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE4  = 0x20;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE42 = 0x40;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_AVX   = 0x80;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="comment">//CPU features</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">   45</a></span>&#160;        <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            quint32 family;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            quint32 model;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            quint32 stepping;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            quint32 count;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            quint32 features;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <span class="keywordtype">bool</span> x64;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <span class="keywordtype">bool</span> intel;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            <span class="keywordtype">char</span> vendor[0x40];</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <span class="keywordtype">char</span> brand[0x40];</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        }</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">cpu_info_t</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        MUTILS_API <a class="code" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">cpu_info_t</a> detect(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;}</div><div class="ttc" id="_global_8h_html"><div class="ttname"><a href="../../d5/d3b/_global_8h.html">Global.h</a></div><div class="ttdoc">This file contains miscellaneous functions that are generally useful for Qt-based applications...</div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// MuldeR&#39;s Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">//MUtils</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d5/d3b/_global_8h.html">MUtils/Global.h</a>&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">//Qt</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;QStringList&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="../../d3/da6/namespace_m_utils.html">   30</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">namespace </span>CPUFetaures</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="comment">//CPU flags</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_MMX   = 0x01;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE   = 0x02;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE2  = 0x04;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE3  = 0x08;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSSE3 = 0x10;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE4  = 0x20;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_SSE42 = 0x40;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> quint32 FLAG_AVX   = 0x80;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="comment">//CPU features</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">   45</a></span>&#160;        <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            quint32 family;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            quint32 model;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            quint32 stepping;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            quint32 count;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            quint32 features;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <span class="keywordtype">bool</span> x64;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <span class="keywordtype">bool</span> intel;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            <span class="keywordtype">char</span> vendor[0x40];</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <span class="keywordtype">char</span> brand[0x40];</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        }</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">cpu_info_t</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        MUTILS_API <a class="code" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">cpu_info_t</a> detect(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;}</div><div class="ttc" id="_global_8h_html"><div class="ttname"><a href="../../d5/d3b/_global_8h.html">Global.h</a></div><div class="ttdoc">This file contains miscellaneous functions that are generally useful for Qt-based applications...</div></div>
 <div class="ttc" id="struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t_html"><div class="ttname"><a href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">MUtils::CPUFetaures::_cpu_info_t</a></div><div class="ttdef"><b>Definition:</b> CPUFeatures.h:45</div></div>
 <div class="ttc" id="namespace_m_utils_html"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="ttdef"><b>Definition:</b> CPUFeatures.h:30</div></div>
 </div><!-- fragment --></div><!-- contents -->
index a249db4..91051e6 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 4db949b..2b6b66c 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d1/d32/class_m_utils_1_1_version.html">Version</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d1/d32/class_m_utils_1_1_version.html">Version</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index c785d97..15e97e3 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Hash</b></li><li class="navelem"><b>Internal</b></li><li class="navelem"><b>KeccakImpl</b></li><li class="navelem"><a class="el" href="../../d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html">spongeStateStruct</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Hash</b></li><li class="navelem"><b>Internal</b></li><li class="navelem"><b>KeccakImpl</b></li><li class="navelem"><a class="el" href="../../d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html">spongeStateStruct</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
diff --git a/docs/d3/da6/namespace_m_utils.html b/docs/d3/da6/namespace_m_utils.html
new file mode 100644 (file)
index 0000000..0d71943
--- /dev/null
@@ -0,0 +1,830 @@
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR&#39;s Utilities for Qt: MUtils Namespace Reference</title>
+<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="../../jquery.js"></script>
+<script type="text/javascript" src="../../dynsections.js"></script>
+<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="../../search/searchdata.js"></script>
+<script type="text/javascript" src="../../search/search.js"></script>
+<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MuldeR&#39;s Utilities for Qt
+   </div>
+   <div id="projectbrief">MUtilities</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
+</script>
+<script type="text/javascript" src="../../menudata.js"></script>
+<script type="text/javascript" src="../../menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('../../',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">MUtils Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d8a/class_m_utils_1_1_update_checker.html">UpdateChecker</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d0d/class_m_utils_1_1_update_checker_info.html">UpdateCheckerInfo</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d32/class_m_utils_1_1_version.html">Version</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3f198156e8be91f3e74dd9ed69ffaa34"><td class="memItemLeft" align="right" valign="top">MUTILS_API const QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">temp_folder</a> (void)</td></tr>
+<tr class="memdesc:a3f198156e8be91f3e74dd9ed69ffaa34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rerieves the full path of the application's <em>Temp</em> folder.  <a href="#a3f198156e8be91f3e74dd9ed69ffaa34">More...</a><br /></td></tr>
+<tr class="separator:a3f198156e8be91f3e74dd9ed69ffaa34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ecb5d72f33a7b6feadd7deb8ed46cc3"><td class="memItemLeft" align="right" valign="top">MUTILS_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">init_process</a> (QProcess &amp;process, const QString &amp;wokringDir, const bool bReplaceTempDir=true, const QStringList *const extraPaths=NULL)</td></tr>
+<tr class="memdesc:a0ecb5d72f33a7b6feadd7deb8ed46cc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a given <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object.  <a href="#a0ecb5d72f33a7b6feadd7deb8ed46cc3">More...</a><br /></td></tr>
+<tr class="separator:a0ecb5d72f33a7b6feadd7deb8ed46cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c9832c1d645a2c90e9bd52d57d843b3"><td class="memItemLeft" align="right" valign="top">MUTILS_API quint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">next_rand_u32</a> (void)</td></tr>
+<tr class="memdesc:a1c9832c1d645a2c90e9bd52d57d843b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 32-Bit value.  <a href="#a1c9832c1d645a2c90e9bd52d57d843b3">More...</a><br /></td></tr>
+<tr class="separator:a1c9832c1d645a2c90e9bd52d57d843b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7edd4aece64faf3aa16c9509243608c"><td class="memItemLeft" align="right" valign="top">MUTILS_API quint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">next_rand_u64</a> (void)</td></tr>
+<tr class="memdesc:ad7edd4aece64faf3aa16c9509243608c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 64-Bit value.  <a href="#ad7edd4aece64faf3aa16c9509243608c">More...</a><br /></td></tr>
+<tr class="separator:ad7edd4aece64faf3aa16c9509243608c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac583617546d5ae100ce7436546d9662c"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">next_rand_str</a> (const bool &amp;bLong=false)</td></tr>
+<tr class="memdesc:ac583617546d5ae100ce7436546d9662c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> string.  <a href="#ac583617546d5ae100ce7436546d9662c">More...</a><br /></td></tr>
+<tr class="separator:ac583617546d5ae100ce7436546d9662c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29461116550863e8730f3f4ec479bbcb"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">make_temp_file</a> (const QString &amp;basePath, const QString &amp;extension, const bool placeholder=false)</td></tr>
+<tr class="memdesc:a29461116550863e8730f3f4ec479bbcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a temporary file name.  <a href="#a29461116550863e8730f3f4ec479bbcb">More...</a><br /></td></tr>
+<tr class="separator:a29461116550863e8730f3f4ec479bbcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9afe3821ae9bef7bdf56a4183fdea0d"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">make_unique_file</a> (const QString &amp;basePath, const QString &amp;baseName, const QString &amp;extension, const bool fancy=false)</td></tr>
+<tr class="memdesc:af9afe3821ae9bef7bdf56a4183fdea0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a unique file name.  <a href="#af9afe3821ae9bef7bdf56a4183fdea0d">More...</a><br /></td></tr>
+<tr class="separator:af9afe3821ae9bef7bdf56a4183fdea0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea4a212153b09b24b04f30ef5159f29b"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">parity</a> (quint32 value)</td></tr>
+<tr class="memdesc:aea4a212153b09b24b04f30ef5159f29b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <em>parity</em> of the given unsigned 32-Bit value.  <a href="#aea4a212153b09b24b04f30ef5159f29b">More...</a><br /></td></tr>
+<tr class="separator:aea4a212153b09b24b04f30ef5159f29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a14e75627eebd09efc37898d74c5ac6"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">remove_file</a> (const QString &amp;fileName)</td></tr>
+<tr class="memdesc:a5a14e75627eebd09efc37898d74c5ac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified file.  <a href="#a5a14e75627eebd09efc37898d74c5ac6">More...</a><br /></td></tr>
+<tr class="separator:a5a14e75627eebd09efc37898d74c5ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d451ddc82668d1298f2922f62474b5d"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">remove_directory</a> (const QString &amp;folderPath, const bool &amp;recursive)</td></tr>
+<tr class="memdesc:a4d451ddc82668d1298f2922f62474b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively deletes the specified directory.  <a href="#a4d451ddc82668d1298f2922f62474b5d">More...</a><br /></td></tr>
+<tr class="separator:a4d451ddc82668d1298f2922f62474b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6118cf23d2b771fae1ad159c7ea6686a"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">trim_right</a> (QString &amp;str)</td></tr>
+<tr class="memdesc:a6118cf23d2b771fae1ad159c7ea6686a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="#a6118cf23d2b771fae1ad159c7ea6686a">More...</a><br /></td></tr>
+<tr class="separator:a6118cf23d2b771fae1ad159c7ea6686a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20b8fc56856ee904caaded756399e705"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">trim_left</a> (QString &amp;str)</td></tr>
+<tr class="memdesc:a20b8fc56856ee904caaded756399e705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>leading</em> white-space characters.  <a href="#a20b8fc56856ee904caaded756399e705">More...</a><br /></td></tr>
+<tr class="separator:a20b8fc56856ee904caaded756399e705"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bcb0fce5181ded3c54456379147009d"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d">trim_right</a> (const QString &amp;str)</td></tr>
+<tr class="memdesc:a3bcb0fce5181ded3c54456379147009d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="#a3bcb0fce5181ded3c54456379147009d">More...</a><br /></td></tr>
+<tr class="separator:a3bcb0fce5181ded3c54456379147009d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae43bc17b6fa4ee2287099c4ae095483b"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b">trim_left</a> (const QString &amp;str)</td></tr>
+<tr class="memdesc:ae43bc17b6fa4ee2287099c4ae095483b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="#ae43bc17b6fa4ee2287099c4ae095483b">More...</a><br /></td></tr>
+<tr class="separator:ae43bc17b6fa4ee2287099c4ae095483b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d4c545ea06892f6487f15a48808564f"><td class="memItemLeft" align="right" valign="top">MUTILS_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">natural_string_sort</a> (QStringList &amp;list, const bool bIgnoreCase)</td></tr>
+<tr class="memdesc:a4d4c545ea06892f6487f15a48808564f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort a list of strings using "natural ordering" algorithm.  <a href="#a4d4c545ea06892f6487f15a48808564f">More...</a><br /></td></tr>
+<tr class="separator:a4d4c545ea06892f6487f15a48808564f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd8eb699de88edd73e47fe2e41873385"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">clean_file_name</a> (const QString &amp;name)</td></tr>
+<tr class="memdesc:afd8eb699de88edd73e47fe2e41873385"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up a file name string.  <a href="#afd8eb699de88edd73e47fe2e41873385">More...</a><br /></td></tr>
+<tr class="separator:afd8eb699de88edd73e47fe2e41873385"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad801fab93087c31d764ad15295fe3a88"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">clean_file_path</a> (const QString &amp;path)</td></tr>
+<tr class="memdesc:ad801fab93087c31d764ad15295fe3a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up a file path string.  <a href="#ad801fab93087c31d764ad15295fe3a88">More...</a><br /></td></tr>
+<tr class="separator:ad801fab93087c31d764ad15295fe3a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2a851b289ee66873d3a1ec86f5f34eb"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">regexp_parse_uint32</a> (const QRegExp &amp;regexp, quint32 &amp;value)</td></tr>
+<tr class="memdesc:ad2a851b289ee66873d3a1ec86f5f34eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse regular expression results.  <a href="#ad2a851b289ee66873d3a1ec86f5f34eb">More...</a><br /></td></tr>
+<tr class="separator:ad2a851b289ee66873d3a1ec86f5f34eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81704d66d34e37d3e0e159b5f436babf"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf">regexp_parse_uint32</a> (const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)</td></tr>
+<tr class="memdesc:a81704d66d34e37d3e0e159b5f436babf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse regular expression results.  <a href="#a81704d66d34e37d3e0e159b5f436babf">More...</a><br /></td></tr>
+<tr class="separator:a81704d66d34e37d3e0e159b5f436babf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2275e64c3c74dea855c39b66be67f705"><td class="memItemLeft" align="right" valign="top">MUTILS_API QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">available_codepages</a> (const bool &amp;noAliases=true)</td></tr>
+<tr class="memdesc:a2275e64c3c74dea855c39b66be67f705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a list of all available codepages.  <a href="#a2275e64c3c74dea855c39b66be67f705">More...</a><br /></td></tr>
+<tr class="separator:a2275e64c3c74dea855c39b66be67f705"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a4073b3c626fa07dd5530ddc2d0388939"><td class="memItemLeft" align="right" valign="top"><a id="a4073b3c626fa07dd5530ddc2d0388939"></a>
+class MUTILS_API&#160;</td><td class="memItemRight" valign="bottom"><b>IPCChannel_Private</b></td></tr>
+<tr class="separator:a4073b3c626fa07dd5530ddc2d0388939"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15c311646514dab0c1d044d00c8bbd58"><td class="memItemLeft" align="right" valign="top"><a id="a15c311646514dab0c1d044d00c8bbd58"></a>
+class MUTILS_API&#160;</td><td class="memItemRight" valign="bottom"><b>JobObject_Private</b></td></tr>
+<tr class="separator:a15c311646514dab0c1d044d00c8bbd58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78cd148fbdfdf4f799a3b7562f7981c0"><td class="memItemLeft" align="right" valign="top"><a id="a78cd148fbdfdf4f799a3b7562f7981c0"></a>
+class MUTILS_API&#160;</td><td class="memItemRight" valign="bottom"><b>Taskbar7_Private</b></td></tr>
+<tr class="separator:a78cd148fbdfdf4f799a3b7562f7981c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>INTERNAL </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a2275e64c3c74dea855c39b66be67f705"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2275e64c3c74dea855c39b66be67f705">&sect;&nbsp;</a></span>available_codepages()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QStringList MUtils::available_codepages </td>
+          <td>(</td>
+          <td class="paramtype">const bool &amp;&#160;</td>
+          <td class="paramname"><em>noAliases</em> = <code>true</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Retrieve a list of all available codepages. </p>
+<p>The function generates a list of all codepages that are available on the system. Each codepage name returned by this function may be passed to the <code>QTextCodec::codecForName()</code> function in order to obtain a corresponding <a href="http://doc.qt.io/qt-4.8/qtextcodec.html">QTextCodec</a> object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">noAliases</td><td>If set to <code>true</code>, only distinct codepages are returned, i.e. any codepage aliases are discarded from the list; if set to <code>false</code>, the returned list may (and usually will) also contain codepage aliases.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QStringList holding the names of all codepages available on the system; otherwise it returns a default-constructed QStringList. </dd></dl>
+
+</div>
+</div>
+<a id="afd8eb699de88edd73e47fe2e41873385"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd8eb699de88edd73e47fe2e41873385">&sect;&nbsp;</a></span>clean_file_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::clean_file_name </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>name</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Clean up a file name string. </p>
+<p>This function ensures that the given string is a valid file (or directory) name. It does so by replacing any illegal characters, i.e. any characters <em>not</em> allowed in file names (which explicitly <em>includes</em> directory separators). Furthermore, the function will trim/remove specific characters that are <em>not</em> allowed directly at the beginning or end of a file name. Finally, the function takes care or special "reserved" file names that are forbidden by the file system. You can use this function to convert user inputs into a valid file name.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">list</td><td>A read-only reference to the QString holding the original, potentially invalid file name.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns a QString holding a valid file name. If, however, the input string was empty or contained only white-space characters, the returned sting can be empty. </dd></dl>
+
+</div>
+</div>
+<a id="ad801fab93087c31d764ad15295fe3a88"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad801fab93087c31d764ad15295fe3a88">&sect;&nbsp;</a></span>clean_file_path()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::clean_file_path </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>path</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Clean up a file path string. </p>
+<p>This function ensures that the given string is a valid file (or directory) path. It does so by replacing any illegal characters, i.e. any characters <em>not</em> allowed in file paths. Directory separators are preserved, but they will be "canonicalized". Furthermore, in each path component, the function will trim/remove specific characters that are <em>not</em> allowed directly at the beginning or end of a path component. Finally, the function takes care or special "reserved" file names that are forbidden by the file system. You can use this function to convert user inputs into a valid file path.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">list</td><td>A read-only reference to the QString holding the original, potentially invalid file path.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns a QString holding a valid file path. If, however, the input string was empty or contained only white-space characters, the returned sting can be empty. </dd></dl>
+
+</div>
+</div>
+<a id="a0ecb5d72f33a7b6feadd7deb8ed46cc3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ecb5d72f33a7b6feadd7deb8ed46cc3">&sect;&nbsp;</a></span>init_process()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API void MUtils::init_process </td>
+          <td>(</td>
+          <td class="paramtype">QProcess &amp;&#160;</td>
+          <td class="paramname"><em>process</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>wokringDir</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>bReplaceTempDir</em> = <code>true</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const QStringList *const&#160;</td>
+          <td class="paramname"><em>extraPaths</em> = <code>NULL</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a given <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object. </p>
+<p>This function prepares a given <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object for sub-process creation. It does so by setting up combined <em>stdout</em> and <em>stderr</em> redirection for the sub-process, cleaning up the sub-process' environment variables, as well as setting up the sub-process' working directory. Optionally, the <em>Temp</em> directory for the sub-process can be set to the application-specific <em>Temp</em> directory, which is achieved by overwriting the corresponding environment variables (e.g. <code>TMP</code> and <code>TEMP</code>). Furthermore, additional paths can be added to the <code>PATH</code> environment variable of the sub-process.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">process</td><td>A reference to the <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object to be initialized. The <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object must be initialized <em>before</em> calling the <code>QProcess::start()</code> method.</td></tr>
+    <tr><td class="paramname">process</td><td>A read-only reference to a QString holding the path of the working directory for the sub-process.</td></tr>
+    <tr><td class="paramname">bReplaceTempDir</td><td>If set to <code>true</code>, the <em>Temp</em> directory for the sub-process is set to the application-specific <em>Temp</em> directory; if set to <code>false</code>, the default <em>Temp</em> directory is retained.</td></tr>
+    <tr><td class="paramname">extraPaths</td><td>A read-only pointer to a QStringList object containing additional paths that will be added (prepended) to the sub-process' <code>PATH</code> environment variable. This parameter can be <code>NULL</code>, in which case <em>no</em> additional paths are added. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a29461116550863e8730f3f4ec479bbcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a29461116550863e8730f3f4ec479bbcb">&sect;&nbsp;</a></span>make_temp_file()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::make_temp_file </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>basePath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>extension</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>placeholder</em> = <code>false</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generates a temporary file name. </p>
+<p>The function generates a file name that contains a <em>random</em> component and that is guaranteed to <b>not</b> exist yet. The generated file name follows a <code>"&lt;basedir&gt;/&lt;random&gt;.&lt;ext&gt;"</code> pattern. This is useful (not only) for creating temporary files.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the temporary file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
+    <tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the temporary file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
+    <tr><td class="paramname">placeholder</td><td>If set to <code>true</code>, the function creates an empty "placeholder" file under the returned file name; if set to <code>false</code>, it does <em>not</em>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QString holding the full path of the temporary file; otherwise it returns a default-constructed QString. </dd></dl>
+
+</div>
+</div>
+<a id="af9afe3821ae9bef7bdf56a4183fdea0d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9afe3821ae9bef7bdf56a4183fdea0d">&sect;&nbsp;</a></span>make_unique_file()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::make_unique_file </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>basePath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>baseName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>extension</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>fancy</em> = <code>false</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generates a unique file name. </p>
+<p>The function generates a unique file name in the specified directory. The function guarantees that the returned file name does <em>not</em> exist yet. If necessary, a <em>counter</em> will be included in the file name in order to ensure its uniqueness.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the unique file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
+    <tr><td class="paramname">baseName</td><td>Specifies the desired "base" file name of the unique file. Do <b>not</b> include a file extension.</td></tr>
+    <tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the unique file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
+    <tr><td class="paramname">fancy</td><td>If set to <code>true</code>, the unique file name is generated according to the <code>"&lt;basedir&gt;/&lt;basename&gt; (N).&lt;ext&gt;"</code> pattern; if set to <code>false</code>, it is generated according to the <code>"&lt;basedir&gt;/&lt;basename&gt;.XXXX.&lt;ext&gt;"</code> pattern. Also, if set to <code>true</code>, a counter is only included in the file name, if the file name <em>without</em> counter already exists; if set to <code>false</code>, a counter is always included. Finally, if set to <code>true</code>, the counter starts at <b>2</b> and is printed in decimal format; if set to <code>false</code>, the counter starts at <b>0</b> and is printed in zero-padded hexadecimal format.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QString holding the full path of the unique file; otherwise it returns a default-constructed QString. </dd></dl>
+
+</div>
+</div>
+<a id="a4d4c545ea06892f6487f15a48808564f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d4c545ea06892f6487f15a48808564f">&sect;&nbsp;</a></span>natural_string_sort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API void MUtils::natural_string_sort </td>
+          <td>(</td>
+          <td class="paramtype">QStringList &amp;&#160;</td>
+          <td class="paramname"><em>list</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>bIgnoreCase</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sort a list of strings using "natural ordering" algorithm. </p>
+<p>This function implements a sort algorithm that orders alphanumeric strings in the way a human being would. See <a href="http://sourcefrog.net/projects/natsort/"><em>Natural Order String Comparison</em></a> for details!</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">list</td><td>A reference to the QStringList object to be sorted. The list will be sorted "in place".</td></tr>
+    <tr><td class="paramname">bIgnoreCase</td><td>If set to <code>true</code>, the list will be sorted disregarding the character case, i.e. upper-case and lower-case characters (of the same letter) are treated the same; if set to <code>false</code>, the character case <em>is</em> taken into account. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ac583617546d5ae100ce7436546d9662c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac583617546d5ae100ce7436546d9662c">&sect;&nbsp;</a></span>next_rand_str()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::next_rand_str </td>
+          <td>(</td>
+          <td class="paramtype">const bool &amp;&#160;</td>
+          <td class="paramname"><em>bLong</em> = <code>false</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generates a <em>random</em> string. </p>
+<p>The random string is generated using the same PRNG as the <code><a class="el" href="../../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c" title="Generates a random unsigned 64-Bit value. ">next_rand_u64()</a></code> function. The <em>random</em> bytes are converted to a hexadecimal string and, if necessary, zero-padded to a toal length of 16 or 32 characters. There is <b>no</b> <code>0x</code>-prefix included in the result.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">bLong</td><td>If set to <code>true</code>, a "long" random string (32 characters) will be generated; if set to <code>false</code>, a "short" random string (16 characters) is generated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns a QString holding a <em>random</em> hexadecimal string </dd></dl>
+
+</div>
+</div>
+<a id="a1c9832c1d645a2c90e9bd52d57d843b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1c9832c1d645a2c90e9bd52d57d843b3">&sect;&nbsp;</a></span>next_rand_u32()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API quint32 MUtils::next_rand_u32 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generates a <em>random</em> unsigned 32-Bit value. </p>
+<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
+<dl class="section return"><dt>Returns</dt><dd>The function returns a <em>random</em> unsigned 32-Bit value. </dd></dl>
+
+</div>
+</div>
+<a id="ad7edd4aece64faf3aa16c9509243608c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad7edd4aece64faf3aa16c9509243608c">&sect;&nbsp;</a></span>next_rand_u64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API quint64 MUtils::next_rand_u64 </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generates a <em>random</em> unsigned 64-Bit value. </p>
+<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
+<dl class="section return"><dt>Returns</dt><dd>The function returns a <em>random</em> unsigned 64-Bit value. </dd></dl>
+
+</div>
+</div>
+<a id="aea4a212153b09b24b04f30ef5159f29b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aea4a212153b09b24b04f30ef5159f29b">&sect;&nbsp;</a></span>parity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API bool MUtils::parity </td>
+          <td>(</td>
+          <td class="paramtype">quint32&#160;</td>
+          <td class="paramname"><em>value</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Computes the <em>parity</em> of the given unsigned 32-Bit value. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">value</td><td>The 32-Bit unsigned value from which the parity is to be computed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the number of <b>1</b> bits in the given value is <em>odd</em>; it returns <code>false</code>, if the number of <b>1</b> bits in the given value is <em>even</em>. </dd></dl>
+
+</div>
+</div>
+<a id="ad2a851b289ee66873d3a1ec86f5f34eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad2a851b289ee66873d3a1ec86f5f34eb">&sect;&nbsp;</a></span>regexp_parse_uint32() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API bool MUtils::regexp_parse_uint32 </td>
+          <td>(</td>
+          <td class="paramtype">const QRegExp &amp;&#160;</td>
+          <td class="paramname"><em>regexp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">quint32 &amp;&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Parse regular expression results. </p>
+<p>This function tries to parses the result (capture) of a regular expression as an unsigned 32-Bit value. The given regular expression must contain at least <em>one</em> capture. Only the <em>first</em> capture is considered, additional captures are ignored.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">regexp</td><td>A read-only reference to the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object whose result (capture) will be parsed. This <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> must already have been <em>successfully</em> matched against the respective input string, e.g. via <code>QRegExp::indexIn()</code>, prior to calling this function.</td></tr>
+    <tr><td class="paramname">value</td><td>A reference to a variable of type <code>quint32</code>, where the unsigned 32-Bit representation of the result will be stored. The contents of this variable are <em>undefined</em>, if the function failed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the regular expression's capture could be parsed successfully; it returns <code>false</code>, if the capture contains an invalid string or if there are insufficient captures in given the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="a81704d66d34e37d3e0e159b5f436babf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a81704d66d34e37d3e0e159b5f436babf">&sect;&nbsp;</a></span>regexp_parse_uint32() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API bool MUtils::regexp_parse_uint32 </td>
+          <td>(</td>
+          <td class="paramtype">const QRegExp &amp;&#160;</td>
+          <td class="paramname"><em>regexp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">quint32 *&#160;</td>
+          <td class="paramname"><em>values</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const size_t &amp;&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Parse regular expression results. </p>
+<p>This function tries to parses the results (captures) of a regular expression as unsigned 32-Bit values. The given regular expression must contain at least <code>count</code> captures. Only the <em>first</em> <code>count</code> captures are considered, additional captures are ignored.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">regexp</td><td>A read-only reference to the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object whose results (captures) will be parsed. This <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> must already have been <em>successfully</em> matched against the respective input string, e.g. via <code>QRegExp::indexIn()</code>, prior to calling this function.</td></tr>
+    <tr><td class="paramname">value</td><td>A pointer to an array of type <code>quint32</code>, where the unsigned 32-Bit representations of the results will be stored (the <code>n</code>-th result is stored at <code>value[n-1]</code>). The array must be at least <code>count</code> elements in length. The contents of this array are <em>undefined</em>, if the function failed.</td></tr>
+    <tr><td class="paramname">count</td><td>Specifies the number of results (captures) in the given <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object. The function tries to parse the first <code>count</code> captures and ignores any additional captures that may exist. This parameter also determines the required (minimum) length of the <code>value</code> array.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if all of the regular expression's captures could be parsed successfully; it returns <code>false</code>, if any of the captures contain an invalid string or if there are insufficient captures in given the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="a4d451ddc82668d1298f2922f62474b5d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d451ddc82668d1298f2922f62474b5d">&sect;&nbsp;</a></span>remove_directory()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API bool MUtils::remove_directory </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>folderPath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool &amp;&#160;</td>
+          <td class="paramname"><em>recursive</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Recursively deletes the specified directory. </p>
+<p>The function deletes the specified directory. In <em>recursive</em> mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the <code><a class="el" href="../../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6" title="Deletes the specified file. ">remove_file()</a></code> function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">folderPath</td><td>The path to the directory to be deleted. This should be a full path.</td></tr>
+    <tr><td class="paramname">recursive</td><td>If set to <code>true</code> the function removes all files and sub-directories in the specified directory; if set to <code>false</code>, the function will <em>not</em> try to delete any files or sub-directories, which means that it will fail on non-empty directories.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the directory was deleted successfully or if the directory doesn't exist; it returns <code>false</code>, if the directory could <em>not</em> be deleted. </dd></dl>
+
+</div>
+</div>
+<a id="a5a14e75627eebd09efc37898d74c5ac6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5a14e75627eebd09efc37898d74c5ac6">&sect;&nbsp;</a></span>remove_file()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API bool MUtils::remove_file </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>fileName</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Deletes the specified file. </p>
+<p>The function deletes the specified file, even if it has the "read only" flag set. If the file is currently locked (e.g. by another process), the function retries multiple times to delete the file before it fails.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">fileName</td><td>The path to the file to be deleted. This should be a full path.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the file was deleted successfully or if the file doesn't exist; it returns <code>false</code>, if the file could <em>not</em> be deleted. </dd></dl>
+
+</div>
+</div>
+<a id="a3f198156e8be91f3e74dd9ed69ffaa34"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f198156e8be91f3e74dd9ed69ffaa34">&sect;&nbsp;</a></span>temp_folder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API const QString&amp; MUtils::temp_folder </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Rerieves the full path of the application's <em>Temp</em> folder. </p>
+<p>The application's <em>Temp</em> folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's <em>Temp</em> folder will be created as a sub-folder of the system's global <em>Temp</em> folder, as indicated by the <code>TMP</code> or <code>TEMP</code> environment variables. However, it may be created at a different place (e.g. in the users <em>Profile</em> directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's <em>Temp</em> folder exists for the whole lifetime of the application and that it is writable. When the application terminates normally, the application's <em>Temp</em> folder and all files or sub-directories thereof will be <em>removed</em> automatically!</p>
+<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's <em>Temp</em> folder; otherwise a read-only reference to a default-constructed QString is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a20b8fc56856ee904caaded756399e705"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a20b8fc56856ee904caaded756399e705">&sect;&nbsp;</a></span>trim_left() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString&amp; MUtils::trim_left </td>
+          <td>(</td>
+          <td class="paramtype">QString &amp;&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove <em>leading</em> white-space characters. </p>
+<p>The function removes all <em>leading</em> white-space characters from the specified string. Trailing white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>A reference to the QString object to be trimmed. This QString object will be modified directly.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A reference to the trimmed QString object. This is the same QString object that was specified in the <code>str</code> parameter. </dd></dl>
+
+</div>
+</div>
+<a id="ae43bc17b6fa4ee2287099c4ae095483b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae43bc17b6fa4ee2287099c4ae095483b">&sect;&nbsp;</a></span>trim_left() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::trim_left </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove <em>trailing</em> white-space characters. </p>
+<p>The function removes all <em>leading</em> white-space characters from the specified string. Trailing white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>A read-only reference to the QString object to be trimmed. The original QString object is <em>not</em> modified.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A new QString object that equals the original QString object, except that it has all <em>leading</em> white-space characters removed. </dd></dl>
+
+</div>
+</div>
+<a id="a6118cf23d2b771fae1ad159c7ea6686a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6118cf23d2b771fae1ad159c7ea6686a">&sect;&nbsp;</a></span>trim_right() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString&amp; MUtils::trim_right </td>
+          <td>(</td>
+          <td class="paramtype">QString &amp;&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove <em>trailing</em> white-space characters. </p>
+<p>The function removes all <em>trailing</em> white-space characters from the specified string. Leading white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>A reference to the QString object to be trimmed. This QString object will be modified directly.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A reference to the trimmed QString object. This is the same QString object that was specified in the <code>str</code> parameter. </dd></dl>
+
+</div>
+</div>
+<a id="a3bcb0fce5181ded3c54456379147009d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3bcb0fce5181ded3c54456379147009d">&sect;&nbsp;</a></span>trim_right() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">MUTILS_API QString MUtils::trim_right </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Remove <em>trailing</em> white-space characters. </p>
+<p>The function removes all <em>trailing</em> white-space characters from the specified string. Leading white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>A read-only reference to the QString object to be trimmed. The original QString object is <em>not</em> modified.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A new QString object that equals the original QString object, except that it has all <em>trailing</em> white-space characters removed. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="../../doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
index 3df244d..c660c63 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d2/d52/class_m_utils_1_1_taskbar7.html">Taskbar7</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 6fe6dbf..c3852f6 100644 (file)
@@ -64,6 +64,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
 <a href="#define-members">Macros</a> &#124;
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
@@ -77,662 +78,108 @@ $(function() {
 </div>
 <p><a href="../../d5/d3b/_global_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:d3/da6/namespace_m_utils"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
 Macros</h2></td></tr>
-<tr class="memitem:a761530893b34e2d324f22ddf7bc31455"><td class="memItemLeft" align="right" valign="top"><a id="a761530893b34e2d324f22ddf7bc31455"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_API</b></td></tr>
-<tr class="separator:a761530893b34e2d324f22ddf7bc31455"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad5b14e1c1267ed90263a45bf6d4289ca"><td class="memItemLeft" align="right" valign="top"><a id="ad5b14e1c1267ed90263a45bf6d4289ca"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_MAKE_STRING_HELPER</b>(X)&#160;&#160;&#160;#X</td></tr>
-<tr class="separator:ad5b14e1c1267ed90263a45bf6d4289ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af2c5f52bf983b10e2078b03ce36efb22"><td class="memItemLeft" align="right" valign="top"><a id="af2c5f52bf983b10e2078b03ce36efb22"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_MAKE_STRING</b>(X)&#160;&#160;&#160;MUTILS_MAKE_STRING_HELPER(X)</td></tr>
-<tr class="separator:af2c5f52bf983b10e2078b03ce36efb22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2b88ab398bf3616fb6826c806f435ddc"><td class="memItemLeft" align="right" valign="top"><a id="a2b88ab398bf3616fb6826c806f435ddc"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_COMPILER_WARNING</b>(TXT)&#160;&#160;&#160;__pragma(message(__FILE__ &quot;(&quot; MUTILS_MAKE_STRING(__LINE__) &quot;) : warning: &quot; TXT))</td></tr>
-<tr class="separator:a2b88ab398bf3616fb6826c806f435ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a249516197568fbf9bbf980554b4d6d95"><td class="memItemLeft" align="right" valign="top"><a id="a249516197568fbf9bbf980554b4d6d95"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_DEBUG</b>&#160;&#160;&#160;(1)</td></tr>
-<tr class="separator:a249516197568fbf9bbf980554b4d6d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad42b1946a83df3bd76734d5ab691fd0d"><td class="memItemLeft" align="right" valign="top"><a id="ad42b1946a83df3bd76734d5ab691fd0d"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_DELETE</b>(PTR)&#160;&#160;&#160;do { if((PTR)) { delete (PTR); (PTR) = NULL; } } while(0)</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#ad42b1946a83df3bd76734d5ab691fd0d">MUTILS_DELETE</a>(PTR)&#160;&#160;&#160;do { if((PTR)) { delete (PTR); (PTR) = NULL; } } while(0)</td></tr>
+<tr class="memdesc:ad42b1946a83df3bd76734d5ab691fd0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the object, if and only if the given pointer is <em>not</em> NULL. Also sets pointer to NULL after object has been deleted. <br /></td></tr>
 <tr class="separator:ad42b1946a83df3bd76734d5ab691fd0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa544a37b80f1ab9d86f439a7666e9aa8"><td class="memItemLeft" align="right" valign="top"><a id="aa544a37b80f1ab9d86f439a7666e9aa8"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_DELETE_ARRAY</b>(PTR)&#160;&#160;&#160;do { if((PTR)) { delete [] (PTR); (PTR) = NULL; } } while(0)</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#aa544a37b80f1ab9d86f439a7666e9aa8">MUTILS_DELETE_ARRAY</a>(PTR)&#160;&#160;&#160;do { if((PTR)) { delete [] (PTR); (PTR) = NULL; } } while(0)</td></tr>
+<tr class="memdesc:aa544a37b80f1ab9d86f439a7666e9aa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the array, if and only if the given pointer is <em>not</em> NULL. Also sets pointer to NULL after array has been deleted. <br /></td></tr>
 <tr class="separator:aa544a37b80f1ab9d86f439a7666e9aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1fe39de37351efa3ca46bdc8653e1f25"><td class="memItemLeft" align="right" valign="top"><a id="a1fe39de37351efa3ca46bdc8653e1f25"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_ZERO_MEMORY</b>(PTR)&#160;&#160;&#160;memset(&amp;(PTR), 0, sizeof((PTR)))</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a1fe39de37351efa3ca46bdc8653e1f25">MUTILS_ZERO_MEMORY</a>(PTR)&#160;&#160;&#160;memset(&amp;(PTR), 0, sizeof((PTR)))</td></tr>
+<tr class="memdesc:a1fe39de37351efa3ca46bdc8653e1f25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the specified variable or struct by setting all of its bytes to <em>zero</em> (<code>0x00</code>). Do <b>not</b> use for arrays. <br /></td></tr>
 <tr class="separator:a1fe39de37351efa3ca46bdc8653e1f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af55d43b39d3f41cf090c138ed190ee6e"><td class="memItemLeft" align="right" valign="top"><a id="af55d43b39d3f41cf090c138ed190ee6e"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_WCHR</b>(STR)&#160;&#160;&#160;(reinterpret_cast&lt;const wchar_t*&gt;((STR).utf16()))</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#af55d43b39d3f41cf090c138ed190ee6e">MUTILS_WCHR</a>(STR)&#160;&#160;&#160;(reinterpret_cast&lt;const wchar_t*&gt;((STR).utf16()))</td></tr>
+<tr class="memdesc:af55d43b39d3f41cf090c138ed190ee6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a given QString object to a <code>wchar_t*</code> pointer. Does <b>not</b> copy the string data, so do <b>not</b> free the pointer! The returned pointer only remains valid until the underlying QString is modified or goes out of scope. <br /></td></tr>
 <tr class="separator:af55d43b39d3f41cf090c138ed190ee6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a88b0902153ea537b12d86267af20eb3f"><td class="memItemLeft" align="right" valign="top"><a id="a88b0902153ea537b12d86267af20eb3f"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_UTF8</b>(STR)&#160;&#160;&#160;((STR).toUtf8().constData())</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a88b0902153ea537b12d86267af20eb3f">MUTILS_UTF8</a>(STR)&#160;&#160;&#160;((STR).toUtf8().constData())</td></tr>
+<tr class="memdesc:a88b0902153ea537b12d86267af20eb3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a given QString object to a <code>char*</code> pointer. The string is converted to UTF-8 encoding. The pointer is valid <em>only</em> while the expression is being evaluated, so do <b>not</b> free or store this pointer! Mainly useful for function calls that require a <code>char*</code> argument. <br /></td></tr>
 <tr class="separator:a88b0902153ea537b12d86267af20eb3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a04d63f6f60c90f8e3c4029824a7352b0"><td class="memItemLeft" align="right" valign="top"><a id="a04d63f6f60c90f8e3c4029824a7352b0"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_QSTR</b>(STR)&#160;&#160;&#160;(QString::fromUtf16(reinterpret_cast&lt;const unsigned short*&gt;((STR))))</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a04d63f6f60c90f8e3c4029824a7352b0">MUTILS_QSTR</a>(STR)&#160;&#160;&#160;(QString::fromUtf16(reinterpret_cast&lt;const unsigned short*&gt;((STR))))</td></tr>
+<tr class="memdesc:a04d63f6f60c90f8e3c4029824a7352b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a QString object from a given <code>wchar_t*</code> buffer. The buffer is expected to conatin a NULL-terminated string in UTF-16 encoding. The string data is copied into the new QString object, however the original buffer will <b>not</b> be freed automatically! <br /></td></tr>
 <tr class="separator:a04d63f6f60c90f8e3c4029824a7352b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a177ecbfe7701c2ac04bb8bdeb208773a"><td class="memItemLeft" align="right" valign="top"><a id="a177ecbfe7701c2ac04bb8bdeb208773a"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_BOOL2STR</b>(X)&#160;&#160;&#160;((X) ? &quot;1&quot; : &quot;0&quot;)</td></tr>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a177ecbfe7701c2ac04bb8bdeb208773a">MUTILS_BOOL2STR</a>(X)&#160;&#160;&#160;((X) ? &quot;1&quot; : &quot;0&quot;)</td></tr>
+<tr class="memdesc:a177ecbfe7701c2ac04bb8bdeb208773a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a boolean expression into a string. A <em>true</em> boolean expression is converted to the string <code>"1"</code>; a <em>false</em> boolean expression is converted to the string <code>"0"</code>. <br /></td></tr>
 <tr class="separator:a177ecbfe7701c2ac04bb8bdeb208773a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:a9ddb9a2039585b1ef3429db16ea84292"><td class="memItemLeft" align="right" valign="top">const QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292">MUtils::temp_folder</a> (void)</td></tr>
-<tr class="memdesc:a9ddb9a2039585b1ef3429db16ea84292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rerieves the full path of the application's <em>Temp</em> folder.  <a href="../../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292">More...</a><br /></td></tr>
-<tr class="separator:a9ddb9a2039585b1ef3429db16ea84292"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5a94d9552ee93a19722fdb411e580340"><td class="memItemLeft" align="right" valign="top"><a id="a5a94d9552ee93a19722fdb411e580340"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::init_process</b> (QProcess &amp;process, const QString &amp;wokringDir, const bool bReplaceTempDir=true, const QStringList *const extraPaths=NULL)</td></tr>
-<tr class="separator:a5a94d9552ee93a19722fdb411e580340"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4dc7dccb81653ae28e0d37a7c2f62112"><td class="memItemLeft" align="right" valign="top">quint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112">MUtils::next_rand_u32</a> (void)</td></tr>
-<tr class="memdesc:a4dc7dccb81653ae28e0d37a7c2f62112"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 32-Bit value.  <a href="../../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112">More...</a><br /></td></tr>
-<tr class="separator:a4dc7dccb81653ae28e0d37a7c2f62112"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a15762bf5b0239e5f67a3815d63ed441a"><td class="memItemLeft" align="right" valign="top">quint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a">MUtils::next_rand_u64</a> (void)</td></tr>
-<tr class="memdesc:a15762bf5b0239e5f67a3815d63ed441a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 64-Bit value.  <a href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a">More...</a><br /></td></tr>
-<tr class="separator:a15762bf5b0239e5f67a3815d63ed441a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a996b60884ddf7728178e94f34ca12570"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570">MUtils::next_rand_str</a> (const bool &amp;bLong=false)</td></tr>
-<tr class="memdesc:a996b60884ddf7728178e94f34ca12570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> string.  <a href="../../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570">More...</a><br /></td></tr>
-<tr class="separator:a996b60884ddf7728178e94f34ca12570"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a67cb16c62b213da5135a6fa076f3f005"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005">MUtils::make_temp_file</a> (const QString &amp;basePath, const QString &amp;extension, const bool placeholder=false)</td></tr>
-<tr class="memdesc:a67cb16c62b213da5135a6fa076f3f005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a temporary file name.  <a href="../../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005">More...</a><br /></td></tr>
-<tr class="separator:a67cb16c62b213da5135a6fa076f3f005"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a390e56e35eb9329d2e67fa9741d07536"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536">MUtils::make_unique_file</a> (const QString &amp;basePath, const QString &amp;baseName, const QString &amp;extension, const bool fancy=false)</td></tr>
-<tr class="memdesc:a390e56e35eb9329d2e67fa9741d07536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a unique file name.  <a href="../../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536">More...</a><br /></td></tr>
-<tr class="separator:a390e56e35eb9329d2e67fa9741d07536"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad1bdb5e416839b1f85f6df68e58ae28c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c">MUtils::parity</a> (quint32 value)</td></tr>
-<tr class="memdesc:ad1bdb5e416839b1f85f6df68e58ae28c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <em>parity</em> of the given unsigned 32-Bit value.  <a href="../../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c">More...</a><br /></td></tr>
-<tr class="separator:ad1bdb5e416839b1f85f6df68e58ae28c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a12259acdd6aff74ee83819d3aebd8ba9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9">MUtils::remove_file</a> (const QString &amp;fileName)</td></tr>
-<tr class="memdesc:a12259acdd6aff74ee83819d3aebd8ba9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified file.  <a href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9">More...</a><br /></td></tr>
-<tr class="separator:a12259acdd6aff74ee83819d3aebd8ba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac7d2c9bd5c49230b2fed72e3410c3f7d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d">MUtils::remove_directory</a> (const QString &amp;folderPath, const bool &amp;recursive)</td></tr>
-<tr class="memdesc:ac7d2c9bd5c49230b2fed72e3410c3f7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively deletes the specified directory.  <a href="../../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d">More...</a><br /></td></tr>
-<tr class="separator:ac7d2c9bd5c49230b2fed72e3410c3f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9290a3fe637a05ad2a7515f36fad79bd"><td class="memItemLeft" align="right" valign="top">QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">MUtils::trim_right</a> (QString &amp;str)</td></tr>
-<tr class="memdesc:a9290a3fe637a05ad2a7515f36fad79bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">More...</a><br /></td></tr>
-<tr class="separator:a9290a3fe637a05ad2a7515f36fad79bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af089c8a40b6ec2e19db3fe612aa81c8c"><td class="memItemLeft" align="right" valign="top">QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">MUtils::trim_left</a> (QString &amp;str)</td></tr>
-<tr class="memdesc:af089c8a40b6ec2e19db3fe612aa81c8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>leading</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">More...</a><br /></td></tr>
-<tr class="separator:af089c8a40b6ec2e19db3fe612aa81c8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3eb47d6ca49b2700622e3fe99faf14d8"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a3eb47d6ca49b2700622e3fe99faf14d8">MUtils::trim_right</a> (const QString &amp;str)</td></tr>
-<tr class="memdesc:a3eb47d6ca49b2700622e3fe99faf14d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#a3eb47d6ca49b2700622e3fe99faf14d8">More...</a><br /></td></tr>
-<tr class="separator:a3eb47d6ca49b2700622e3fe99faf14d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8680aeaeb1118353bd099e26ba7d6123"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a8680aeaeb1118353bd099e26ba7d6123">MUtils::trim_left</a> (const QString &amp;str)</td></tr>
-<tr class="memdesc:a8680aeaeb1118353bd099e26ba7d6123"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#a8680aeaeb1118353bd099e26ba7d6123">More...</a><br /></td></tr>
-<tr class="separator:a8680aeaeb1118353bd099e26ba7d6123"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a09e919d419ded903481cf7aba702dcba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba">MUtils::natural_string_sort</a> (QStringList &amp;list, const bool bIgnoreCase)</td></tr>
-<tr class="memdesc:a09e919d419ded903481cf7aba702dcba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort a list of strings using "natural ordering" algorithm.  <a href="../../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba">More...</a><br /></td></tr>
-<tr class="separator:a09e919d419ded903481cf7aba702dcba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a895e14458df7226110ae70029c1729a9"><td class="memItemLeft" align="right" valign="top"><a id="a895e14458df7226110ae70029c1729a9"></a>
-QString&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file_name</b> (const QString &amp;name)</td></tr>
-<tr class="separator:a895e14458df7226110ae70029c1729a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac0949226be088ce65a60d5aa4194e1c0"><td class="memItemLeft" align="right" valign="top"><a id="ac0949226be088ce65a60d5aa4194e1c0"></a>
-QString&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file_path</b> (const QString &amp;path)</td></tr>
-<tr class="separator:ac0949226be088ce65a60d5aa4194e1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a45cb0d1e6a55cf5ffda3b626c25fd957"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957">MUtils::regexp_parse_uint32</a> (const QRegExp &amp;regexp, quint32 &amp;value)</td></tr>
-<tr class="memdesc:a45cb0d1e6a55cf5ffda3b626c25fd957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse regular expression results.  <a href="../../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957">More...</a><br /></td></tr>
-<tr class="separator:a45cb0d1e6a55cf5ffda3b626c25fd957"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a367969a260da994876d19c9f7ee40606"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a367969a260da994876d19c9f7ee40606">MUtils::regexp_parse_uint32</a> (const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)</td></tr>
-<tr class="memdesc:a367969a260da994876d19c9f7ee40606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse regular expression results.  <a href="../../d5/d3b/_global_8h.html#a367969a260da994876d19c9f7ee40606">More...</a><br /></td></tr>
-<tr class="separator:a367969a260da994876d19c9f7ee40606"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4fcbdafffc1224776616fcc6aec8278b"><td class="memItemLeft" align="right" valign="top">QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b">MUtils::available_codepages</a> (const bool &amp;noAliases=true)</td></tr>
-<tr class="memdesc:a4fcbdafffc1224776616fcc6aec8278b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a list of all available codepages.  <a href="../../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b">More...</a><br /></td></tr>
-<tr class="separator:a4fcbdafffc1224776616fcc6aec8278b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f198156e8be91f3e74dd9ed69ffaa34"><td class="memItemLeft" align="right" valign="top">MUTILS_API const QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">MUtils::temp_folder</a> (void)</td></tr>
+<tr class="memdesc:a3f198156e8be91f3e74dd9ed69ffaa34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rerieves the full path of the application's <em>Temp</em> folder.  <a href="../../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">More...</a><br /></td></tr>
+<tr class="separator:a3f198156e8be91f3e74dd9ed69ffaa34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ecb5d72f33a7b6feadd7deb8ed46cc3"><td class="memItemLeft" align="right" valign="top">MUTILS_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">MUtils::init_process</a> (QProcess &amp;process, const QString &amp;wokringDir, const bool bReplaceTempDir=true, const QStringList *const extraPaths=NULL)</td></tr>
+<tr class="memdesc:a0ecb5d72f33a7b6feadd7deb8ed46cc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a given <a href="http://doc.qt.io/qt-4.8/qprocess.html">QProcess</a> object.  <a href="../../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">More...</a><br /></td></tr>
+<tr class="separator:a0ecb5d72f33a7b6feadd7deb8ed46cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c9832c1d645a2c90e9bd52d57d843b3"><td class="memItemLeft" align="right" valign="top">MUTILS_API quint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">MUtils::next_rand_u32</a> (void)</td></tr>
+<tr class="memdesc:a1c9832c1d645a2c90e9bd52d57d843b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 32-Bit value.  <a href="../../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">More...</a><br /></td></tr>
+<tr class="separator:a1c9832c1d645a2c90e9bd52d57d843b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7edd4aece64faf3aa16c9509243608c"><td class="memItemLeft" align="right" valign="top">MUTILS_API quint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">MUtils::next_rand_u64</a> (void)</td></tr>
+<tr class="memdesc:ad7edd4aece64faf3aa16c9509243608c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 64-Bit value.  <a href="../../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">More...</a><br /></td></tr>
+<tr class="separator:ad7edd4aece64faf3aa16c9509243608c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac583617546d5ae100ce7436546d9662c"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">MUtils::next_rand_str</a> (const bool &amp;bLong=false)</td></tr>
+<tr class="memdesc:ac583617546d5ae100ce7436546d9662c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> string.  <a href="../../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">More...</a><br /></td></tr>
+<tr class="separator:ac583617546d5ae100ce7436546d9662c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29461116550863e8730f3f4ec479bbcb"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">MUtils::make_temp_file</a> (const QString &amp;basePath, const QString &amp;extension, const bool placeholder=false)</td></tr>
+<tr class="memdesc:a29461116550863e8730f3f4ec479bbcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a temporary file name.  <a href="../../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">More...</a><br /></td></tr>
+<tr class="separator:a29461116550863e8730f3f4ec479bbcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9afe3821ae9bef7bdf56a4183fdea0d"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">MUtils::make_unique_file</a> (const QString &amp;basePath, const QString &amp;baseName, const QString &amp;extension, const bool fancy=false)</td></tr>
+<tr class="memdesc:af9afe3821ae9bef7bdf56a4183fdea0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a unique file name.  <a href="../../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">More...</a><br /></td></tr>
+<tr class="separator:af9afe3821ae9bef7bdf56a4183fdea0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea4a212153b09b24b04f30ef5159f29b"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">MUtils::parity</a> (quint32 value)</td></tr>
+<tr class="memdesc:aea4a212153b09b24b04f30ef5159f29b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <em>parity</em> of the given unsigned 32-Bit value.  <a href="../../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">More...</a><br /></td></tr>
+<tr class="separator:aea4a212153b09b24b04f30ef5159f29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a14e75627eebd09efc37898d74c5ac6"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">MUtils::remove_file</a> (const QString &amp;fileName)</td></tr>
+<tr class="memdesc:a5a14e75627eebd09efc37898d74c5ac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified file.  <a href="../../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">More...</a><br /></td></tr>
+<tr class="separator:a5a14e75627eebd09efc37898d74c5ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d451ddc82668d1298f2922f62474b5d"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">MUtils::remove_directory</a> (const QString &amp;folderPath, const bool &amp;recursive)</td></tr>
+<tr class="memdesc:a4d451ddc82668d1298f2922f62474b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively deletes the specified directory.  <a href="../../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">More...</a><br /></td></tr>
+<tr class="separator:a4d451ddc82668d1298f2922f62474b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6118cf23d2b771fae1ad159c7ea6686a"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">MUtils::trim_right</a> (QString &amp;str)</td></tr>
+<tr class="memdesc:a6118cf23d2b771fae1ad159c7ea6686a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">More...</a><br /></td></tr>
+<tr class="separator:a6118cf23d2b771fae1ad159c7ea6686a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20b8fc56856ee904caaded756399e705"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">MUtils::trim_left</a> (QString &amp;str)</td></tr>
+<tr class="memdesc:a20b8fc56856ee904caaded756399e705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>leading</em> white-space characters.  <a href="../../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">More...</a><br /></td></tr>
+<tr class="separator:a20b8fc56856ee904caaded756399e705"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bcb0fce5181ded3c54456379147009d"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d">MUtils::trim_right</a> (const QString &amp;str)</td></tr>
+<tr class="memdesc:a3bcb0fce5181ded3c54456379147009d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d">More...</a><br /></td></tr>
+<tr class="separator:a3bcb0fce5181ded3c54456379147009d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae43bc17b6fa4ee2287099c4ae095483b"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b">MUtils::trim_left</a> (const QString &amp;str)</td></tr>
+<tr class="memdesc:ae43bc17b6fa4ee2287099c4ae095483b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b">More...</a><br /></td></tr>
+<tr class="separator:ae43bc17b6fa4ee2287099c4ae095483b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d4c545ea06892f6487f15a48808564f"><td class="memItemLeft" align="right" valign="top">MUTILS_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">MUtils::natural_string_sort</a> (QStringList &amp;list, const bool bIgnoreCase)</td></tr>
+<tr class="memdesc:a4d4c545ea06892f6487f15a48808564f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort a list of strings using "natural ordering" algorithm.  <a href="../../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">More...</a><br /></td></tr>
+<tr class="separator:a4d4c545ea06892f6487f15a48808564f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd8eb699de88edd73e47fe2e41873385"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">MUtils::clean_file_name</a> (const QString &amp;name)</td></tr>
+<tr class="memdesc:afd8eb699de88edd73e47fe2e41873385"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up a file name string.  <a href="../../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">More...</a><br /></td></tr>
+<tr class="separator:afd8eb699de88edd73e47fe2e41873385"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad801fab93087c31d764ad15295fe3a88"><td class="memItemLeft" align="right" valign="top">MUTILS_API QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">MUtils::clean_file_path</a> (const QString &amp;path)</td></tr>
+<tr class="memdesc:ad801fab93087c31d764ad15295fe3a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up a file path string.  <a href="../../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">More...</a><br /></td></tr>
+<tr class="separator:ad801fab93087c31d764ad15295fe3a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2a851b289ee66873d3a1ec86f5f34eb"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">MUtils::regexp_parse_uint32</a> (const QRegExp &amp;regexp, quint32 &amp;value)</td></tr>
+<tr class="memdesc:ad2a851b289ee66873d3a1ec86f5f34eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse regular expression results.  <a href="../../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">More...</a><br /></td></tr>
+<tr class="separator:ad2a851b289ee66873d3a1ec86f5f34eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81704d66d34e37d3e0e159b5f436babf"><td class="memItemLeft" align="right" valign="top">MUTILS_API bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf">MUtils::regexp_parse_uint32</a> (const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)</td></tr>
+<tr class="memdesc:a81704d66d34e37d3e0e159b5f436babf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse regular expression results.  <a href="../../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf">More...</a><br /></td></tr>
+<tr class="separator:a81704d66d34e37d3e0e159b5f436babf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2275e64c3c74dea855c39b66be67f705"><td class="memItemLeft" align="right" valign="top">MUTILS_API QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">MUtils::available_codepages</a> (const bool &amp;noAliases=true)</td></tr>
+<tr class="memdesc:a2275e64c3c74dea855c39b66be67f705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a list of all available codepages.  <a href="../../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">More...</a><br /></td></tr>
+<tr class="separator:a2275e64c3c74dea855c39b66be67f705"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This file contains miscellaneous functions that are generally useful for Qt-based applications. </p>
-</div><h2 class="groupheader">Function Documentation</h2>
-<a id="file_a4fcbdafffc1224776616fcc6aec8278b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a4fcbdafffc1224776616fcc6aec8278b">&sect;&nbsp;</a></span>available_codepages()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QStringList MUtils::available_codepages </td>
-          <td>(</td>
-          <td class="paramtype">const bool &amp;&#160;</td>
-          <td class="paramname"><em>noAliases</em> = <code>true</code></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Retrieve a list of all available codepages. </p>
-<p>The function generates a list of all codepages that are available on the system. Each codepage name returned by this function may be passed to the <code>QTextCodec::codecForName()</code> function in order to obtain a corresponding <a href="http://doc.qt.io/qt-4.8/qtextcodec.html">QTextCodec</a> object.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">noAliases</td><td>If set to <code>true</code>, only distinct codepages are returned, i.e. any codepage aliases are discarded from the list; if set to <code>false</code>, the returned list may (and usually will) also contain codepage aliases.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QStringList holding the names of all codepages available on the system; otherwise it returns a default-constructed QStringList. </dd></dl>
-
-</div>
-</div>
-<a id="file_a67cb16c62b213da5135a6fa076f3f005"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a67cb16c62b213da5135a6fa076f3f005">&sect;&nbsp;</a></span>make_temp_file()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString MUtils::make_temp_file </td>
-          <td>(</td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>basePath</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>extension</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>placeholder</em> = <code>false</code>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Generates a temporary file name. </p>
-<p>The function generates a file name that contains a <em>random</em> component and that is guaranteed to <b>not</b> exist yet. The generated file name follows a <code>"&lt;basedir&gt;/&lt;random&gt;.&lt;ext&gt;"</code> pattern. This is useful (not only) for creating temporary files.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the temporary file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
-    <tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the temporary file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
-    <tr><td class="paramname">placeholder</td><td>If set to <code>true</code>, the function creates an empty "placeholder" file under the returned file name; if set to <code>false</code>, it does <em>not</em>.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QString holding the full path of the temporary file; otherwise it returns a default-constructed QString. </dd></dl>
-
-</div>
-</div>
-<a id="file_a390e56e35eb9329d2e67fa9741d07536"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a390e56e35eb9329d2e67fa9741d07536">&sect;&nbsp;</a></span>make_unique_file()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString MUtils::make_unique_file </td>
-          <td>(</td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>basePath</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>baseName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>extension</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>fancy</em> = <code>false</code>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Generates a unique file name. </p>
-<p>The function generates a unique file name in the specified directory. The function guarantees that the returned file name does <em>not</em> exist yet. If necessary, a <em>counter</em> will be included in the file name in order to ensure its uniqueness.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the unique file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
-    <tr><td class="paramname">baseName</td><td>Specifies the desired "base" file name of the unique file. Do <b>not</b> include a file extension.</td></tr>
-    <tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the unique file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
-    <tr><td class="paramname">fancy</td><td>If set to <code>true</code>, the unique file name is generated according to the <code>"&lt;basedir&gt;/&lt;basename&gt; (N).&lt;ext&gt;"</code> pattern; if set to <code>false</code>, it is generated according to the <code>"&lt;basedir&gt;/&lt;basename&gt;.XXXX.&lt;ext&gt;"</code> pattern. Also, if set to <code>true</code>, a counter is only included in the file name, if the file name <em>without</em> counter already exists; if set to <code>false</code>, a counter is always included. Finally, if set to <code>true</code>, the counter starts at <b>2</b> and is printed in decimal format; if set to <code>false</code>, the counter starts at <b>0</b> and is printed in zero-padded hexadecimal format.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QString holding the full path of the unique file; otherwise it returns a default-constructed QString. </dd></dl>
-
-</div>
-</div>
-<a id="file_a09e919d419ded903481cf7aba702dcba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a09e919d419ded903481cf7aba702dcba">&sect;&nbsp;</a></span>natural_string_sort()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void MUtils::natural_string_sort </td>
-          <td>(</td>
-          <td class="paramtype">QStringList &amp;&#160;</td>
-          <td class="paramname"><em>list</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>bIgnoreCase</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Sort a list of strings using "natural ordering" algorithm. </p>
-<p>This function implements a sort algorithm that orders alphanumeric strings in the way a human being would. See <a href="http://sourcefrog.net/projects/natsort/"><em>Natural Order String Comparison</em></a> for details!</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">list</td><td>A reference to the QStringList object to be sorted. The list will be sorted "in place".</td></tr>
-    <tr><td class="paramname">bIgnoreCase</td><td>If set to <code>true</code>, the list will be sorted disregarding the character case, i.e. upper-case and lower-case characters (of the same letter) are treated the same; if set to <code>false</code>, the character case <em>is</em> taken into account. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="file_a996b60884ddf7728178e94f34ca12570"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a996b60884ddf7728178e94f34ca12570">&sect;&nbsp;</a></span>next_rand_str()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString MUtils::next_rand_str </td>
-          <td>(</td>
-          <td class="paramtype">const bool &amp;&#160;</td>
-          <td class="paramname"><em>bLong</em> = <code>false</code></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Generates a <em>random</em> string. </p>
-<p>The random string is generated using the same PRNG as the <code><a class="el" href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a" title="Generates a random unsigned 64-Bit value. ">next_rand_u64()</a></code> function. The <em>random</em> bytes are converted to a hexadecimal string and, if necessary, zero-padded to a toal length of 16 or 32 characters. There is <b>no</b> <code>0x</code>-prefix included in the result.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">bLong</td><td>If set to <code>true</code>, a "long" random string (32 characters) will be generated; if set to <code>false</code>, a "short" random string (16 characters) is generated.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The function returns a QString holding a <em>random</em> hexadecimal string </dd></dl>
-
-</div>
-</div>
-<a id="file_a4dc7dccb81653ae28e0d37a7c2f62112"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a4dc7dccb81653ae28e0d37a7c2f62112">&sect;&nbsp;</a></span>next_rand_u32()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">quint32 MUtils::next_rand_u32 </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Generates a <em>random</em> unsigned 32-Bit value. </p>
-<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
-<dl class="section return"><dt>Returns</dt><dd>The function returns a <em>random</em> unsigned 32-Bit value. </dd></dl>
-
-</div>
-</div>
-<a id="file_a15762bf5b0239e5f67a3815d63ed441a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a15762bf5b0239e5f67a3815d63ed441a">&sect;&nbsp;</a></span>next_rand_u64()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">quint64 MUtils::next_rand_u64 </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Generates a <em>random</em> unsigned 64-Bit value. </p>
-<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
-<dl class="section return"><dt>Returns</dt><dd>The function returns a <em>random</em> unsigned 64-Bit value. </dd></dl>
-
-</div>
-</div>
-<a id="file_ad1bdb5e416839b1f85f6df68e58ae28c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_ad1bdb5e416839b1f85f6df68e58ae28c">&sect;&nbsp;</a></span>parity()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool MUtils::parity </td>
-          <td>(</td>
-          <td class="paramtype">quint32&#160;</td>
-          <td class="paramname"><em>value</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Computes the <em>parity</em> of the given unsigned 32-Bit value. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">value</td><td>The 32-Bit unsigned value from which the parity is to be computed.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the number of <b>1</b> bits in the given value is <em>odd</em>; it returns <code>false</code>, if the number of <b>1</b> bits in the given value is <em>even</em>. </dd></dl>
-
-</div>
-</div>
-<a id="file_a45cb0d1e6a55cf5ffda3b626c25fd957"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a45cb0d1e6a55cf5ffda3b626c25fd957">&sect;&nbsp;</a></span>regexp_parse_uint32() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool MUtils::regexp_parse_uint32 </td>
-          <td>(</td>
-          <td class="paramtype">const QRegExp &amp;&#160;</td>
-          <td class="paramname"><em>regexp</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">quint32 &amp;&#160;</td>
-          <td class="paramname"><em>value</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Parse regular expression results. </p>
-<p>This function tries to parses the result (capture) of a regular expression as an unsigned 32-Bit value. The given regular expression must contain at least <em>one</em> capture. Only the <em>first</em> capture is considered, additional captures are ignored.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">regexp</td><td>A read-only reference to the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object whose result (capture) will be parsed. This <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> must already have been <em>successfully</em> matched against the respective input string, e.g. via <code>QRegExp::indexIn()</code>, prior to calling this function.</td></tr>
-    <tr><td class="paramname">value</td><td>A reference to a variable of type <code>quint32</code>, where the unsigned 32-Bit representation of the result will be stored. The contents of this variable are <em>undefined</em>, if the function failed.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the regular expression's capture could be parsed successfully; it returns <code>false</code>, if the capture contains an invalid string or if there are insufficient captures in given the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object. </dd></dl>
-
-</div>
-</div>
-<a id="file_a367969a260da994876d19c9f7ee40606"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a367969a260da994876d19c9f7ee40606">&sect;&nbsp;</a></span>regexp_parse_uint32() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool MUtils::regexp_parse_uint32 </td>
-          <td>(</td>
-          <td class="paramtype">const QRegExp &amp;&#160;</td>
-          <td class="paramname"><em>regexp</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">quint32 *&#160;</td>
-          <td class="paramname"><em>values</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const size_t &amp;&#160;</td>
-          <td class="paramname"><em>count</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Parse regular expression results. </p>
-<p>This function tries to parses the results (captures) of a regular expression as unsigned 32-Bit values. The given regular expression must contain at least <code>count</code> captures. Only the <em>first</em> <code>count</code> captures are considered, additional captures are ignored.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">regexp</td><td>A read-only reference to the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object whose results (captures) will be parsed. This <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> must already have been <em>successfully</em> matched against the respective input string, e.g. via <code>QRegExp::indexIn()</code>, prior to calling this function.</td></tr>
-    <tr><td class="paramname">value</td><td>A pointer to an array of type <code>quint32</code>, where the unsigned 32-Bit representations of the results will be stored (the <code>n</code>-th result is stored at <code>value[n-1]</code>). The array must be at least <code>count</code> elements in length. The contents of this array are <em>undefined</em>, if the function failed.</td></tr>
-    <tr><td class="paramname">count</td><td>Specifies the number of results (captures) in the given <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object. The function tries to parse the first <code>count</code> captures and ignores any additional captures that may exist. This parameter also determines the required (minimum) length of the <code>value</code> array.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if all of the regular expression's captures could be parsed successfully; it returns <code>false</code>, if any of the captures contain an invalid string or if there are insufficient captures in given the <a href="http://doc.qt.io/qt-4.8/qregexp.html">QRegExp</a> object. </dd></dl>
-
-</div>
-</div>
-<a id="file_ac7d2c9bd5c49230b2fed72e3410c3f7d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_ac7d2c9bd5c49230b2fed72e3410c3f7d">&sect;&nbsp;</a></span>remove_directory()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool MUtils::remove_directory </td>
-          <td>(</td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>folderPath</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool &amp;&#160;</td>
-          <td class="paramname"><em>recursive</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Recursively deletes the specified directory. </p>
-<p>The function deletes the specified directory. In <em>recursive</em> mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the <code><a class="el" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9" title="Deletes the specified file. ">remove_file()</a></code> function.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">folderPath</td><td>The path to the directory to be deleted. This should be a full path.</td></tr>
-    <tr><td class="paramname">recursive</td><td>If set to <code>true</code> the function removes all files and sub-directories in the specified directory; if set to <code>false</code>, the function will <em>not</em> try to delete any files or sub-directories, which means that it will fail on non-empty directories.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the directory was deleted successfully or if the directory doesn't exist; it returns <code>false</code>, if the directory could <em>not</em> be deleted. </dd></dl>
-
-</div>
-</div>
-<a id="file_a12259acdd6aff74ee83819d3aebd8ba9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a12259acdd6aff74ee83819d3aebd8ba9">&sect;&nbsp;</a></span>remove_file()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool MUtils::remove_file </td>
-          <td>(</td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>fileName</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Deletes the specified file. </p>
-<p>The function deletes the specified file, even if it has the "read only" flag set. If the file is currently locked (e.g. by another process), the function retries multiple times to delete the file before it fails.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">fileName</td><td>The path to the file to be deleted. This should be a full path.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the file was deleted successfully or if the file doesn't exist; it returns <code>false</code>, if the file could <em>not</em> be deleted. </dd></dl>
-
-</div>
-</div>
-<a id="file_a9ddb9a2039585b1ef3429db16ea84292"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a9ddb9a2039585b1ef3429db16ea84292">&sect;&nbsp;</a></span>temp_folder()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const QString&amp; MUtils::temp_folder </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Rerieves the full path of the application's <em>Temp</em> folder. </p>
-<p>The application's <em>Temp</em> folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's <em>Temp</em> folder will be created as a sub-folder of the system's global <em>Temp</em> folder, as indicated by the <code>TMP</code> or <code>TEMP</code> environment variables. However, it may be created at a different place (e.g. in the users <em>Profile</em> directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's <em>Temp</em> folder exists for the whole lifetime of the application and that it is writable. When the application terminates normally, the application's <em>Temp</em> folder and all files or sub-directories thereof will be <em>removed</em> automatically!</p>
-<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's <em>Temp</em> folder; otherwise a read-only reference to a default-constructed QString is returned. </dd></dl>
-
-</div>
-</div>
-<a id="file_af089c8a40b6ec2e19db3fe612aa81c8c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_af089c8a40b6ec2e19db3fe612aa81c8c">&sect;&nbsp;</a></span>trim_left() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString&amp; MUtils::trim_left </td>
-          <td>(</td>
-          <td class="paramtype">QString &amp;&#160;</td>
-          <td class="paramname"><em>str</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Remove <em>leading</em> white-space characters. </p>
-<p>The function removes all <em>leading</em> white-space characters from the specified string. Trailing white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">str</td><td>A reference to the QString object to be trimmed. This QString object will be modified directly.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A reference to the trimmed QString object. This is the same QString object that was specified in the <code>str</code> parameter. </dd></dl>
-
-</div>
-</div>
-<a id="file_a8680aeaeb1118353bd099e26ba7d6123"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a8680aeaeb1118353bd099e26ba7d6123">&sect;&nbsp;</a></span>trim_left() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString MUtils::trim_left </td>
-          <td>(</td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>str</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Remove <em>trailing</em> white-space characters. </p>
-<p>The function removes all <em>leading</em> white-space characters from the specified string. Trailing white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">str</td><td>A read-only reference to the QString object to be trimmed. The original QString object is <em>not</em> modified.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A new QString object that equals the original QString object, except that it has all <em>leading</em> white-space characters removed. </dd></dl>
-
-</div>
-</div>
-<a id="file_a9290a3fe637a05ad2a7515f36fad79bd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a9290a3fe637a05ad2a7515f36fad79bd">&sect;&nbsp;</a></span>trim_right() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString&amp; MUtils::trim_right </td>
-          <td>(</td>
-          <td class="paramtype">QString &amp;&#160;</td>
-          <td class="paramname"><em>str</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Remove <em>trailing</em> white-space characters. </p>
-<p>The function removes all <em>trailing</em> white-space characters from the specified string. Leading white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">str</td><td>A reference to the QString object to be trimmed. This QString object will be modified directly.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A reference to the trimmed QString object. This is the same QString object that was specified in the <code>str</code> parameter. </dd></dl>
-
-</div>
-</div>
-<a id="file_a3eb47d6ca49b2700622e3fe99faf14d8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#file_a3eb47d6ca49b2700622e3fe99faf14d8">&sect;&nbsp;</a></span>trim_right() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">QString MUtils::trim_right </td>
-          <td>(</td>
-          <td class="paramtype">const QString &amp;&#160;</td>
-          <td class="paramname"><em>str</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Remove <em>trailing</em> white-space characters. </p>
-<p>The function removes all <em>trailing</em> white-space characters from the specified string. Leading white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">str</td><td>A read-only reference to the QString object to be trimmed. The original QString object is <em>not</em> modified.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A new QString object that equals the original QString object, except that it has all <em>trailing</em> white-space characters removed. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
+</div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
index 2484d61..5ad7a15 100644 (file)
@@ -67,21 +67,24 @@ $(function() {
 <div class="title">Global.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="../../d5/d3b/_global_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// MuldeR&#39;s Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;QString&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">//Forward Declarations</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">class </span>QProcess;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">//MUtils API</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#   ifdef MUTILS_DLL_EXPORT</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#       define MUTILS_API __declspec(dllexport)</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#   else</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#       ifndef MUTILS_STATIC_LIB</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#           define MUTILS_API __declspec(dllimport)</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#       else</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#           define MUTILS_API </span><span class="comment">/*static lib*/</span><span class="preprocessor"></span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#       endif</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#   define MUTILS_API</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">//Helper Macros</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#define MUTILS_MAKE_STRING_HELPER(X) #X</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define MUTILS_MAKE_STRING(X) MUTILS_MAKE_STRING_HELPER(X)</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define MUTILS_COMPILER_WARNING(TXT) __pragma(message(__FILE__ &quot;(&quot; MUTILS_MAKE_STRING(__LINE__) &quot;) : warning: &quot; TXT))</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">//Check Debug Flags</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#if defined(_DEBUG) || defined(DEBUG) || (!defined(NDEBUG))</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#   define MUTILS_DEBUG (1)</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#   if defined(NDEBUG) || defined(QT_NO_DEBUG) || (!defined(QT_DEBUG))</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#       error Inconsistent DEBUG flags have been detected!</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#   define MUTILS_DEBUG (0)</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#   if (!defined(NDEBUG)) || (!defined(QT_NO_DEBUG)) || defined(QT_DEBUG)</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#       error Inconsistent DEBUG flags have been detected!</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">//Check CPU options</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#if defined(_MSC_VER) &amp;&amp; (!defined(__INTELLISENSE__)) &amp;&amp; (!defined(_M_X64)) &amp;&amp; defined(_M_IX86_FP)</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">    #if (_M_IX86_FP != 0)</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">        #error We should not enabled SSE or SSE2 in release builds!</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    MUTILS_API <span class="keyword">const</span> QString&amp; <a class="code" href="../../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292">temp_folder</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="comment">//Process Utils</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    MUTILS_API <span class="keywordtype">void</span> init_process(QProcess &amp;process, <span class="keyword">const</span> QString &amp;wokringDir, <span class="keyword">const</span> <span class="keywordtype">bool</span> bReplaceTempDir = <span class="keyword">true</span>, <span class="keyword">const</span> QStringList *<span class="keyword">const</span> extraPaths = NULL);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    MUTILS_API quint32 <a class="code" href="../../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112">next_rand_u32</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    MUTILS_API quint64 <a class="code" href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a">next_rand_u64</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    </div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    MUTILS_API QString <a class="code" href="../../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570">next_rand_str</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;bLong = <span class="keyword">false</span>);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    MUTILS_API QString <a class="code" href="../../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005">make_temp_file</a>(<span class="keyword">const</span> QString &amp;basePath, <span class="keyword">const</span> QString &amp;extension, <span class="keyword">const</span> <span class="keywordtype">bool</span> placeholder = <span class="keyword">false</span>);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    MUTILS_API QString <a class="code" href="../../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536">make_unique_file</a>(<span class="keyword">const</span> QString &amp;basePath, <span class="keyword">const</span> QString &amp;baseName, <span class="keyword">const</span> QString &amp;extension, <span class="keyword">const</span> <span class="keywordtype">bool</span> fancy = <span class="keyword">false</span>);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c">parity</a>(quint32 value);</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9">remove_file</a>(<span class="keyword">const</span> QString &amp;fileName);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d">remove_directory</a>(<span class="keyword">const</span> QString &amp;folderPath, <span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;recursive);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    MUTILS_API QString&amp; <a class="code" href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">trim_right</a>(QString &amp;str);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    MUTILS_API QString&amp; <a class="code" href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">trim_left</a>(QString &amp;str);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    MUTILS_API QString <a class="code" href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">trim_right</a>(<span class="keyword">const</span> QString &amp;str);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    MUTILS_API QString <a class="code" href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">trim_left</a>(<span class="keyword">const</span> QString &amp;str);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    MUTILS_API <span class="keywordtype">void</span> <a class="code" href="../../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba">natural_string_sort</a>(QStringList &amp;list, <span class="keyword">const</span> <span class="keywordtype">bool</span> bIgnoreCase);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    MUTILS_API QString clean_file_name(<span class="keyword">const</span> QString &amp;name);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    MUTILS_API QString clean_file_path(<span class="keyword">const</span> QString &amp;path);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957">regexp_parse_uint32</a>(<span class="keyword">const</span> QRegExp &amp;regexp, quint32 &amp;value);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957">regexp_parse_uint32</a>(<span class="keyword">const</span> QRegExp &amp;regexp, quint32 *values, <span class="keyword">const</span> <span class="keywordtype">size_t</span> &amp;count);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    MUTILS_API QStringList <a class="code" href="../../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b">available_codepages</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;noAliases = <span class="keyword">true</span>);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="comment">//Internal</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="keyword">namespace </span>Internal</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    {</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        MUTILS_API <span class="keywordtype">int</span> selfTest(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> buildKey, <span class="keyword">const</span> <span class="keywordtype">bool</span> debug);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> s_selfTest = selfTest(__DATE__ <span class="stringliteral">&quot;@&quot;</span> __TIME__, MUTILS_DEBUG);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    }</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;}</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="comment">//Delete helper</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor">#define MUTILS_DELETE(PTR) do { if((PTR)) { delete (PTR); (PTR) = NULL; } } while(0)</span></div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="preprocessor">#define MUTILS_DELETE_ARRAY(PTR) do { if((PTR)) { delete [] (PTR); (PTR) = NULL; } } while(0)</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="comment">//Zero memory</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="preprocessor">#define MUTILS_ZERO_MEMORY(PTR) memset(&amp;(PTR), 0, sizeof((PTR)))</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">//String conversion macros</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="preprocessor">#define MUTILS_WCHR(STR) (reinterpret_cast&lt;const wchar_t*&gt;((STR).utf16()))</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="preprocessor">#define MUTILS_UTF8(STR) ((STR).toUtf8().constData())</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="preprocessor">#define MUTILS_QSTR(STR) (QString::fromUtf16(reinterpret_cast&lt;const unsigned short*&gt;((STR))))</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="comment">//Boolean helper</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="preprocessor">#define MUTILS_BOOL2STR(X) ((X) ? &quot;1&quot; : &quot;0&quot;)</span></div><div class="ttc" id="_global_8h_html_a12259acdd6aff74ee83819d3aebd8ba9"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9">MUtils::remove_file</a></div><div class="ttdeci">bool remove_file(const QString &amp;fileName)</div><div class="ttdoc">Deletes the specified file. </div></div>
-<div class="ttc" id="_global_8h_html_a4dc7dccb81653ae28e0d37a7c2f62112"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112">MUtils::next_rand_u32</a></div><div class="ttdeci">quint32 next_rand_u32(void)</div><div class="ttdoc">Generates a random unsigned 32-Bit value. </div></div>
-<div class="ttc" id="_global_8h_html_ad1bdb5e416839b1f85f6df68e58ae28c"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c">MUtils::parity</a></div><div class="ttdeci">bool parity(quint32 value)</div><div class="ttdoc">Computes the parity of the given unsigned 32-Bit value. </div></div>
-<div class="ttc" id="_global_8h_html_a390e56e35eb9329d2e67fa9741d07536"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536">MUtils::make_unique_file</a></div><div class="ttdeci">QString make_unique_file(const QString &amp;basePath, const QString &amp;baseName, const QString &amp;extension, const bool fancy=false)</div><div class="ttdoc">Generates a unique file name. </div></div>
-<div class="ttc" id="_global_8h_html_a9ddb9a2039585b1ef3429db16ea84292"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292">MUtils::temp_folder</a></div><div class="ttdeci">const QString &amp; temp_folder(void)</div><div class="ttdoc">Rerieves the full path of the application&amp;#39;s Temp folder. </div></div>
+<a href="../../d5/d3b/_global_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// MuldeR&#39;s Utilities for Qt</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// http://www.gnu.org/licenses/lgpl-2.1.txt</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;QString&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">//Forward Declarations</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">class </span>QProcess;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment">//MUtils API</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#   ifdef MUTILS_DLL_EXPORT</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#       define MUTILS_API __declspec(dllexport)</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#   else</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#       ifndef MUTILS_STATIC_LIB</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#           define MUTILS_API __declspec(dllimport)</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#       else</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#           define MUTILS_API </span><span class="comment">/*static lib*/</span><span class="preprocessor"></span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#       endif</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#   define MUTILS_API</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define MUTILS_MAKE_STRING_HELPER(X) #X</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#define MUTILS_MAKE_STRING(X) MUTILS_MAKE_STRING_HELPER(X)</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#define MUTILS_COMPILER_WARNING(TXT) __pragma(message(__FILE__ &quot;(&quot; MUTILS_MAKE_STRING(__LINE__) &quot;) : warning: &quot; TXT))</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">//Check Debug Flags</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#if defined(_DEBUG) || defined(DEBUG) || (!defined(NDEBUG))</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#   define MUTILS_DEBUG (1)</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#   if defined(NDEBUG) || defined(QT_NO_DEBUG) || (!defined(QT_DEBUG))</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#       error Inconsistent DEBUG flags have been detected!</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#   define MUTILS_DEBUG (0)</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#   if (!defined(NDEBUG)) || (!defined(QT_NO_DEBUG)) || defined(QT_DEBUG)</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#       error Inconsistent DEBUG flags have been detected!</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">//Check CPU options</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#if defined(_MSC_VER) &amp;&amp; (!defined(__INTELLISENSE__)) &amp;&amp; (!defined(_M_X64)) &amp;&amp; defined(_M_IX86_FP)</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">    #if (_M_IX86_FP != 0)</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">        #error We should not enabled SSE or SSE2 in release builds!</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keyword">namespace </span><a class="code" href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    MUTILS_API <span class="keyword">const</span> QString&amp; <a class="code" href="../../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">temp_folder</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    MUTILS_API <span class="keywordtype">void</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">init_process</a>(QProcess &amp;process, <span class="keyword">const</span> QString &amp;wokringDir, <span class="keyword">const</span> <span class="keywordtype">bool</span> bReplaceTempDir = <span class="keyword">true</span>, <span class="keyword">const</span> QStringList *<span class="keyword">const</span> extraPaths = NULL);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    MUTILS_API quint32 <a class="code" href="../../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">next_rand_u32</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    </div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    MUTILS_API quint64 <a class="code" href="../../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">next_rand_u64</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    </div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">next_rand_str</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;bLong = <span class="keyword">false</span>);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">make_temp_file</a>(<span class="keyword">const</span> QString &amp;basePath, <span class="keyword">const</span> QString &amp;extension, <span class="keyword">const</span> <span class="keywordtype">bool</span> placeholder = <span class="keyword">false</span>);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">make_unique_file</a>(<span class="keyword">const</span> QString &amp;basePath, <span class="keyword">const</span> QString &amp;baseName, <span class="keyword">const</span> QString &amp;extension, <span class="keyword">const</span> <span class="keywordtype">bool</span> fancy = <span class="keyword">false</span>);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">parity</a>(quint32 value);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">remove_file</a>(<span class="keyword">const</span> QString &amp;fileName);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">remove_directory</a>(<span class="keyword">const</span> QString &amp;folderPath, <span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;recursive);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    MUTILS_API QString&amp; <a class="code" href="../../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">trim_right</a>(QString &amp;str);</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    MUTILS_API QString&amp; <a class="code" href="../../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">trim_left</a>(QString &amp;str);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">trim_right</a>(<span class="keyword">const</span> QString &amp;str);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">trim_left</a>(<span class="keyword">const</span> QString &amp;str);</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    MUTILS_API <span class="keywordtype">void</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">natural_string_sort</a>(QStringList &amp;list, <span class="keyword">const</span> <span class="keywordtype">bool</span> bIgnoreCase);</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">clean_file_name</a>(<span class="keyword">const</span> QString &amp;name);</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    MUTILS_API QString <a class="code" href="../../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">clean_file_path</a>(<span class="keyword">const</span> QString &amp;path);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">regexp_parse_uint32</a>(<span class="keyword">const</span> QRegExp &amp;regexp, quint32 &amp;value);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> <a class="code" href="../../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">regexp_parse_uint32</a>(<span class="keyword">const</span> QRegExp &amp;regexp, quint32 *values, <span class="keyword">const</span> <span class="keywordtype">size_t</span> &amp;count);</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    MUTILS_API QStringList <a class="code" href="../../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">available_codepages</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;noAliases = <span class="keyword">true</span>);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="comment">//Internal</span></div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keyword">namespace </span>Internal</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    {</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        MUTILS_API <span class="keywordtype">int</span> selfTest(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> buildKey, <span class="keyword">const</span> <span class="keywordtype">bool</span> debug);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> s_selfTest = selfTest(__DATE__ <span class="stringliteral">&quot;@&quot;</span> __TIME__, MUTILS_DEBUG);</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    }</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;}</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#ad42b1946a83df3bd76734d5ab691fd0d">  331</a></span>&#160;<span class="preprocessor">#define MUTILS_DELETE(PTR) do { if((PTR)) { delete (PTR); (PTR) = NULL; } } while(0)</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#aa544a37b80f1ab9d86f439a7666e9aa8">  335</a></span>&#160;<span class="preprocessor">#define MUTILS_DELETE_ARRAY(PTR) do { if((PTR)) { delete [] (PTR); (PTR) = NULL; } } while(0)</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#a1fe39de37351efa3ca46bdc8653e1f25">  339</a></span>&#160;<span class="preprocessor">#define MUTILS_ZERO_MEMORY(PTR) memset(&amp;(PTR), 0, sizeof((PTR)))</span></div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#af55d43b39d3f41cf090c138ed190ee6e">  343</a></span>&#160;<span class="preprocessor">#define MUTILS_WCHR(STR) (reinterpret_cast&lt;const wchar_t*&gt;((STR).utf16()))</span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#a88b0902153ea537b12d86267af20eb3f">  347</a></span>&#160;<span class="preprocessor">#define MUTILS_UTF8(STR) ((STR).toUtf8().constData())</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#a04d63f6f60c90f8e3c4029824a7352b0">  351</a></span>&#160;<span class="preprocessor">#define MUTILS_QSTR(STR) (QString::fromUtf16(reinterpret_cast&lt;const unsigned short*&gt;((STR))))</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="../../d5/d3b/_global_8h.html#a177ecbfe7701c2ac04bb8bdeb208773a">  355</a></span>&#160;<span class="preprocessor">#define MUTILS_BOOL2STR(X) ((X) ? &quot;1&quot; : &quot;0&quot;)</span></div><div class="ttc" id="namespace_m_utils_html_a2275e64c3c74dea855c39b66be67f705"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">MUtils::available_codepages</a></div><div class="ttdeci">MUTILS_API QStringList available_codepages(const bool &amp;noAliases=true)</div><div class="ttdoc">Retrieve a list of all available codepages. </div></div>
+<div class="ttc" id="namespace_m_utils_html_ac583617546d5ae100ce7436546d9662c"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">MUtils::next_rand_str</a></div><div class="ttdeci">MUTILS_API QString next_rand_str(const bool &amp;bLong=false)</div><div class="ttdoc">Generates a random string. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a5a14e75627eebd09efc37898d74c5ac6"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">MUtils::remove_file</a></div><div class="ttdeci">MUTILS_API bool remove_file(const QString &amp;fileName)</div><div class="ttdoc">Deletes the specified file. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a4d4c545ea06892f6487f15a48808564f"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">MUtils::natural_string_sort</a></div><div class="ttdeci">MUTILS_API void natural_string_sort(QStringList &amp;list, const bool bIgnoreCase)</div><div class="ttdoc">Sort a list of strings using &quot;natural ordering&quot; algorithm. </div></div>
+<div class="ttc" id="namespace_m_utils_html_ad2a851b289ee66873d3a1ec86f5f34eb"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">MUtils::regexp_parse_uint32</a></div><div class="ttdeci">MUTILS_API bool regexp_parse_uint32(const QRegExp &amp;regexp, quint32 &amp;value)</div><div class="ttdoc">Parse regular expression results. </div></div>
+<div class="ttc" id="namespace_m_utils_html_afd8eb699de88edd73e47fe2e41873385"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">MUtils::clean_file_name</a></div><div class="ttdeci">MUTILS_API QString clean_file_name(const QString &amp;name)</div><div class="ttdoc">Clean up a file name string. </div></div>
+<div class="ttc" id="namespace_m_utils_html_aea4a212153b09b24b04f30ef5159f29b"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">MUtils::parity</a></div><div class="ttdeci">MUTILS_API bool parity(quint32 value)</div><div class="ttdoc">Computes the parity of the given unsigned 32-Bit value. </div></div>
+<div class="ttc" id="namespace_m_utils_html_ad7edd4aece64faf3aa16c9509243608c"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">MUtils::next_rand_u64</a></div><div class="ttdeci">MUTILS_API quint64 next_rand_u64(void)</div><div class="ttdoc">Generates a random unsigned 64-Bit value. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a0ecb5d72f33a7b6feadd7deb8ed46cc3"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">MUtils::init_process</a></div><div class="ttdeci">MUTILS_API void init_process(QProcess &amp;process, const QString &amp;wokringDir, const bool bReplaceTempDir=true, const QStringList *const extraPaths=NULL)</div><div class="ttdoc">Initialize a given QProcess object. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a6118cf23d2b771fae1ad159c7ea6686a"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">MUtils::trim_right</a></div><div class="ttdeci">MUTILS_API QString &amp; trim_right(QString &amp;str)</div><div class="ttdoc">Remove trailing white-space characters. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a3f198156e8be91f3e74dd9ed69ffaa34"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">MUtils::temp_folder</a></div><div class="ttdeci">MUTILS_API const QString &amp; temp_folder(void)</div><div class="ttdoc">Rerieves the full path of the application&amp;#39;s Temp folder. </div></div>
 <div class="ttc" id="namespace_m_utils_html"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html">MUtils</a></div><div class="ttdef"><b>Definition:</b> CPUFeatures.h:30</div></div>
-<div class="ttc" id="_global_8h_html_a996b60884ddf7728178e94f34ca12570"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570">MUtils::next_rand_str</a></div><div class="ttdeci">QString next_rand_str(const bool &amp;bLong=false)</div><div class="ttdoc">Generates a random string. </div></div>
-<div class="ttc" id="_global_8h_html_a67cb16c62b213da5135a6fa076f3f005"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005">MUtils::make_temp_file</a></div><div class="ttdeci">QString make_temp_file(const QString &amp;basePath, const QString &amp;extension, const bool placeholder=false)</div><div class="ttdoc">Generates a temporary file name. </div></div>
-<div class="ttc" id="_global_8h_html_ac7d2c9bd5c49230b2fed72e3410c3f7d"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d">MUtils::remove_directory</a></div><div class="ttdeci">bool remove_directory(const QString &amp;folderPath, const bool &amp;recursive)</div><div class="ttdoc">Recursively deletes the specified directory. </div></div>
-<div class="ttc" id="_global_8h_html_a9290a3fe637a05ad2a7515f36fad79bd"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">MUtils::trim_right</a></div><div class="ttdeci">QString &amp; trim_right(QString &amp;str)</div><div class="ttdoc">Remove trailing white-space characters. </div></div>
-<div class="ttc" id="_global_8h_html_a09e919d419ded903481cf7aba702dcba"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba">MUtils::natural_string_sort</a></div><div class="ttdeci">void natural_string_sort(QStringList &amp;list, const bool bIgnoreCase)</div><div class="ttdoc">Sort a list of strings using &quot;natural ordering&quot; algorithm. </div></div>
-<div class="ttc" id="_global_8h_html_a4fcbdafffc1224776616fcc6aec8278b"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b">MUtils::available_codepages</a></div><div class="ttdeci">QStringList available_codepages(const bool &amp;noAliases=true)</div><div class="ttdoc">Retrieve a list of all available codepages. </div></div>
-<div class="ttc" id="_global_8h_html_af089c8a40b6ec2e19db3fe612aa81c8c"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">MUtils::trim_left</a></div><div class="ttdeci">QString &amp; trim_left(QString &amp;str)</div><div class="ttdoc">Remove leading white-space characters. </div></div>
-<div class="ttc" id="_global_8h_html_a45cb0d1e6a55cf5ffda3b626c25fd957"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957">MUtils::regexp_parse_uint32</a></div><div class="ttdeci">bool regexp_parse_uint32(const QRegExp &amp;regexp, quint32 &amp;value)</div><div class="ttdoc">Parse regular expression results. </div></div>
-<div class="ttc" id="_global_8h_html_a15762bf5b0239e5f67a3815d63ed441a"><div class="ttname"><a href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a">MUtils::next_rand_u64</a></div><div class="ttdeci">quint64 next_rand_u64(void)</div><div class="ttdoc">Generates a random unsigned 64-Bit value. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a1c9832c1d645a2c90e9bd52d57d843b3"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">MUtils::next_rand_u32</a></div><div class="ttdeci">MUTILS_API quint32 next_rand_u32(void)</div><div class="ttdoc">Generates a random unsigned 32-Bit value. </div></div>
+<div class="ttc" id="namespace_m_utils_html_af9afe3821ae9bef7bdf56a4183fdea0d"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">MUtils::make_unique_file</a></div><div class="ttdeci">MUTILS_API QString make_unique_file(const QString &amp;basePath, const QString &amp;baseName, const QString &amp;extension, const bool fancy=false)</div><div class="ttdoc">Generates a unique file name. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a4d451ddc82668d1298f2922f62474b5d"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">MUtils::remove_directory</a></div><div class="ttdeci">MUTILS_API bool remove_directory(const QString &amp;folderPath, const bool &amp;recursive)</div><div class="ttdoc">Recursively deletes the specified directory. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a29461116550863e8730f3f4ec479bbcb"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">MUtils::make_temp_file</a></div><div class="ttdeci">MUTILS_API QString make_temp_file(const QString &amp;basePath, const QString &amp;extension, const bool placeholder=false)</div><div class="ttdoc">Generates a temporary file name. </div></div>
+<div class="ttc" id="namespace_m_utils_html_a20b8fc56856ee904caaded756399e705"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">MUtils::trim_left</a></div><div class="ttdeci">MUTILS_API QString &amp; trim_left(QString &amp;str)</div><div class="ttdoc">Remove leading white-space characters. </div></div>
+<div class="ttc" id="namespace_m_utils_html_ad801fab93087c31d764ad15295fe3a88"><div class="ttname"><a href="../../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">MUtils::clean_file_path</a></div><div class="ttdeci">MUTILS_API QString clean_file_path(const QString &amp;path)</div><div class="ttdoc">Clean up a file path string. </div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
index d0c8154..e44cac7 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>OS</b></li><li class="navelem"><b>Version</b></li><li class="navelem"><a class="el" href="../../dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html">_os_version_t</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>OS</b></li><li class="navelem"><b>Version</b></li><li class="navelem"><a class="el" href="../../dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html">_os_version_t</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index a891c73..eb0a1d8 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index dc79ad9..9e28be1 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../d5/dfe/class_m_utils_1_1_i_p_c_channel.html">IPCChannel</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index de7f398..2c5c565 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Registry</b></li><li class="navelem"><a class="el" href="../../da/d35/class_m_utils_1_1_registry_1_1_registry_key.html">RegistryKey</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Registry</b></li><li class="navelem"><a class="el" href="../../da/d35/class_m_utils_1_1_registry_1_1_registry_key.html">RegistryKey</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index f6d7aae..1d96079 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>OS</b></li><li class="navelem"><b>Version</b></li><li class="navelem"><a class="el" href="../../dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html">_os_version_t</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>OS</b></li><li class="navelem"><b>Version</b></li><li class="navelem"><a class="el" href="../../dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html">_os_version_t</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 9888534..018b051 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Registry</b></li><li class="navelem"><a class="el" href="../../da/d35/class_m_utils_1_1_registry_1_1_registry_key.html">RegistryKey</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Registry</b></li><li class="navelem"><a class="el" href="../../da/d35/class_m_utils_1_1_registry_1_1_registry_key.html">RegistryKey</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 55973a6..9fb73da 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><a class="el" href="../../dc/dd3/class_m_utils_1_1_job_object.html">JobObject</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 614b287..d12d715 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../d1/d01/class_m_utils_1_1_hash_1_1_blake2.html">Blake2</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../d1/d01/class_m_utils_1_1_hash_1_1_blake2.html">Blake2</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index f6939f3..a582eec 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html">Keccak</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>Hash</b></li><li class="navelem"><a class="el" href="../../dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html">Keccak</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
index 36562da..5a8fd59 100644 (file)
@@ -59,7 +59,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><b>MUtils</b></li><li class="navelem"><b>CPUFetaures</b></li><li class="navelem"><a class="el" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a></li>  </ul>
+<li class="navelem"><a class="el" href="../../d3/da6/namespace_m_utils.html">MUtils</a></li><li class="navelem"><b>CPUFetaures</b></li><li class="navelem"><a class="el" href="../../dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html">_cpu_info_t</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
diff --git a/docs/globals.html b/docs/globals.html
new file mode 100644 (file)
index 0000000..79292d5
--- /dev/null
@@ -0,0 +1,93 @@
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR&#39;s Utilities for Qt: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MuldeR&#39;s Utilities for Qt
+   </div>
+   <div id="projectbrief">MUtilities</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented file members with links to the documentation:</div><ul>
+<li>MUTILS_BOOL2STR
+: <a class="el" href="d5/d3b/_global_8h.html#a177ecbfe7701c2ac04bb8bdeb208773a">Global.h</a>
+</li>
+<li>MUTILS_DELETE
+: <a class="el" href="d5/d3b/_global_8h.html#ad42b1946a83df3bd76734d5ab691fd0d">Global.h</a>
+</li>
+<li>MUTILS_DELETE_ARRAY
+: <a class="el" href="d5/d3b/_global_8h.html#aa544a37b80f1ab9d86f439a7666e9aa8">Global.h</a>
+</li>
+<li>MUTILS_QSTR
+: <a class="el" href="d5/d3b/_global_8h.html#a04d63f6f60c90f8e3c4029824a7352b0">Global.h</a>
+</li>
+<li>MUTILS_UTF8
+: <a class="el" href="d5/d3b/_global_8h.html#a88b0902153ea537b12d86267af20eb3f">Global.h</a>
+</li>
+<li>MUTILS_WCHR
+: <a class="el" href="d5/d3b/_global_8h.html#af55d43b39d3f41cf090c138ed190ee6e">Global.h</a>
+</li>
+<li>MUTILS_ZERO_MEMORY
+: <a class="el" href="d5/d3b/_global_8h.html#a1fe39de37351efa3ca46bdc8653e1f25">Global.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
diff --git a/docs/globals_defs.html b/docs/globals_defs.html
new file mode 100644 (file)
index 0000000..1ac0620
--- /dev/null
@@ -0,0 +1,93 @@
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR&#39;s Utilities for Qt: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MuldeR&#39;s Utilities for Qt
+   </div>
+   <div id="projectbrief">MUtilities</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>MUTILS_BOOL2STR
+: <a class="el" href="d5/d3b/_global_8h.html#a177ecbfe7701c2ac04bb8bdeb208773a">Global.h</a>
+</li>
+<li>MUTILS_DELETE
+: <a class="el" href="d5/d3b/_global_8h.html#ad42b1946a83df3bd76734d5ab691fd0d">Global.h</a>
+</li>
+<li>MUTILS_DELETE_ARRAY
+: <a class="el" href="d5/d3b/_global_8h.html#aa544a37b80f1ab9d86f439a7666e9aa8">Global.h</a>
+</li>
+<li>MUTILS_QSTR
+: <a class="el" href="d5/d3b/_global_8h.html#a04d63f6f60c90f8e3c4029824a7352b0">Global.h</a>
+</li>
+<li>MUTILS_UTF8
+: <a class="el" href="d5/d3b/_global_8h.html#a88b0902153ea537b12d86267af20eb3f">Global.h</a>
+</li>
+<li>MUTILS_WCHR
+: <a class="el" href="d5/d3b/_global_8h.html#af55d43b39d3f41cf090c138ed190ee6e">Global.h</a>
+</li>
+<li>MUTILS_ZERO_MEMORY
+: <a class="el" href="d5/d3b/_global_8h.html#a1fe39de37351efa3ca46bdc8653e1f25">Global.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
index 565e796..e4c1d3b 100644 (file)
@@ -65,19 +65,6 @@ $(function() {
 <div class="contents">
 <div class="textblock"><h1>Introduction</h1>
 <p>The <b>MUtilities</b> library is a collection of routines and classes to extend the <a href="http://qt-project.org/"><em>Qt cross-platform framework</em></a>. It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the <a href="http://lamexp.sourceforge.net/"><b>LameXP</b></a> application: Over the years, a lot of code, <b>not</b> really specific to <em>LameXP</em>, had accumulated in the <em>LameXP</em> code base. Some of that code even had been used in other projects too, in a "copy &amp; paste" fashion &ndash; which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the <b>MUtilities</b> (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of <em>LameXP</em> and <a href="https://github.com/lordmulder"><em>other OpenSource projects</em></a>.</p>
-<h1>Project Structure</h1>
-<p>The <em>MUtilities</em> project directory is organized as follows:</p>
-<ul>
-<li><code>bin/</code> &ndash; compiled library files (static or shared), link those files in projects that use the MUtilities library</li>
-<li><code>docs/</code> &ndash; programming interface documentation, generated with Doxygen tool</li>
-<li><code>etc/</code> &ndash; miscellaneous files, everything that doesn't fit in anywhere else</li>
-<li><code>include/</code> &ndash; public header files, include this directory in projects that use the MUtilities library</li>
-<li><code>obj/</code> &ndash; object code files, intermediate files generated during the build process</li>
-<li><code>res/</code> &ndash; resource files, required for building the MUtilities library</li>
-<li><code>src/</code> &ndash; source code files, required for building the MUtilities library (third-party code in <code>src/3rd_party/</code>)</li>
-<li><code>test/</code> &ndash; unit tests, based on Google Test framework</li>
-<li><code>tmp/</code> &ndash; temporary files, automatically generated during the build process</li>
-</ul>
 <h1>API Documentation</h1>
 <p>The public API of the <em>MUtilities</em> library is defined in the following header files (select file for details):</p><ul>
 <li><b><a class="el" href="d5/d3b/_global_8h.html" title="This file contains miscellaneous functions that are generally useful for Qt-based applications...">Global.h</a></b> &ndash; miscellaneous useful functions</li>
@@ -90,14 +77,7 @@ int main(int argc, char **argv)
 {
     qDebug("Random number: %u\n", MUtils::next_rand_u32());
 }
-</pre><h2>Build Notes</h2>
-<ul>
-<li>In order to use the <em>MUtilities</em> library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is <em>not</em> covered by this document.</li>
-<li>Additionally, make sure that <em>MUtilities'</em> <code>include/</code> directory is contained in your "Additional Include Directories" and that the <em>MUtilities'</em> <code>bin/</code> directory is contained in your "Additional Library Directories".</li>
-<li>Finally, make sure that your project links against the <code>MUtils32-1.lib</code> library file. For each build configuration, pick the proper **.lib** file from the corresponding <code>bin/&lt;platform&gt;/&lt;config&gt;/</code> directory!</li>
-<li>If your projects intends to use the <em>MUtilities</em> library as a <b>static</b> library, then the macro <code>MUTILS_STATIC_LIB</code> <em>must</em> be added to your project's "Preprocessor Definitions".</li>
-</ul>
-<h1>License</h1>
+</pre><h1>License</h1>
 <p>This library is free software. It is released under the terms of the <a href="https://www.gnu.org/licenses/lgpl-2.1.html"><em>GNU Lesser General Public License (LGPL), Version 2.1</em></a>. </p><pre class="fragment">MUtilities - MuldeR's Utilities for Qt
 Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;. Some rights reserved.
 
index db9ff74..a2b6c55 100644 (file)
@@ -1,8 +1,16 @@
 var menudata={children:[
 {text:'Main Page',url:'index.html'},
+{text:'Namespaces',url:'namespaces.html',children:[
+{text:'Namespace List',url:'namespaces.html'},
+{text:'Namespace Members',url:'namespacemembers.html',children:[
+{text:'All',url:'namespacemembers.html'},
+{text:'Functions',url:'namespacemembers_func.html'}]}]},
 {text:'Classes',url:'annotated.html',children:[
 {text:'Class List',url:'annotated.html'},
 {text:'Class Index',url:'classes.html'},
 {text:'Class Hierarchy',url:'hierarchy.html'}]},
 {text:'Files',url:'files.html',children:[
-{text:'File List',url:'files.html'}]}]}
+{text:'File List',url:'files.html'},
+{text:'File Members',url:'globals.html',children:[
+{text:'All',url:'globals.html'},
+{text:'Macros',url:'globals_defs.html'}]}]}]}
diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html
new file mode 100644 (file)
index 0000000..3216f2d
--- /dev/null
@@ -0,0 +1,123 @@
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR&#39;s Utilities for Qt: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MuldeR&#39;s Utilities for Qt
+   </div>
+   <div id="projectbrief">MUtilities</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented namespace members with links to the namespaces they belong to:</div><ul>
+<li>available_codepages()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">MUtils</a>
+</li>
+<li>clean_file_name()
+: <a class="el" href="d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">MUtils</a>
+</li>
+<li>clean_file_path()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">MUtils</a>
+</li>
+<li>init_process()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">MUtils</a>
+</li>
+<li>make_temp_file()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">MUtils</a>
+</li>
+<li>make_unique_file()
+: <a class="el" href="d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">MUtils</a>
+</li>
+<li>natural_string_sort()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">MUtils</a>
+</li>
+<li>next_rand_str()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">MUtils</a>
+</li>
+<li>next_rand_u32()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">MUtils</a>
+</li>
+<li>next_rand_u64()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">MUtils</a>
+</li>
+<li>parity()
+: <a class="el" href="d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">MUtils</a>
+</li>
+<li>regexp_parse_uint32()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">MUtils</a>
+</li>
+<li>remove_directory()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">MUtils</a>
+</li>
+<li>remove_file()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">MUtils</a>
+</li>
+<li>temp_folder()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">MUtils</a>
+</li>
+<li>trim_left()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">MUtils</a>
+</li>
+<li>trim_right()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">MUtils</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html
new file mode 100644 (file)
index 0000000..7f022f7
--- /dev/null
@@ -0,0 +1,123 @@
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR&#39;s Utilities for Qt: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MuldeR&#39;s Utilities for Qt
+   </div>
+   <div id="projectbrief">MUtilities</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>available_codepages()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705">MUtils</a>
+</li>
+<li>clean_file_name()
+: <a class="el" href="d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385">MUtils</a>
+</li>
+<li>clean_file_path()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88">MUtils</a>
+</li>
+<li>init_process()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3">MUtils</a>
+</li>
+<li>make_temp_file()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb">MUtils</a>
+</li>
+<li>make_unique_file()
+: <a class="el" href="d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d">MUtils</a>
+</li>
+<li>natural_string_sort()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f">MUtils</a>
+</li>
+<li>next_rand_str()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c">MUtils</a>
+</li>
+<li>next_rand_u32()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3">MUtils</a>
+</li>
+<li>next_rand_u64()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c">MUtils</a>
+</li>
+<li>parity()
+: <a class="el" href="d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b">MUtils</a>
+</li>
+<li>regexp_parse_uint32()
+: <a class="el" href="d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb">MUtils</a>
+</li>
+<li>remove_directory()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d">MUtils</a>
+</li>
+<li>remove_file()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6">MUtils</a>
+</li>
+<li>temp_folder()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34">MUtils</a>
+</li>
+<li>trim_left()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705">MUtils</a>
+</li>
+<li>trim_right()
+: <a class="el" href="d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a">MUtils</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
diff --git a/docs/namespaces.html b/docs/namespaces.html
new file mode 100644 (file)
index 0000000..43079e6
--- /dev/null
@@ -0,0 +1,79 @@
+<!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"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MuldeR&#39;s Utilities for Qt: Namespace List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MuldeR&#39;s Utilities for Qt
+   </div>
+   <div id="projectbrief">MUtilities</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.12 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Namespace List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented namespaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="d3/da6/namespace_m_utils.html" target="_self">MUtils</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.12
+</small></address>
+</body>
+</html>
index f2c4c9a..b41c51c 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['available_5fcodepages',['available_codepages',['../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b',1,'MUtils']]]
+  ['available_5fcodepages',['available_codepages',['../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705',1,'MUtils']]]
 ];
index fa2e904..f8da9ee 100644 (file)
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['global_2eh',['Global.h',['../d5/d3b/_global_8h.html',1,'']]]
+  ['clean_5ffile_5fname',['clean_file_name',['../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385',1,'MUtils']]],
+  ['clean_5ffile_5fpath',['clean_file_path',['../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88',1,'MUtils']]]
 ];
index 8414f45..fa2e904 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['ipcchannel',['IPCChannel',['../d5/dfe/class_m_utils_1_1_i_p_c_channel.html',1,'MUtils']]]
+  ['global_2eh',['Global.h',['../d5/d3b/_global_8h.html',1,'']]]
 ];
index e409b67..e8ff725 100644 (file)
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html',1,'MUtils']]]
+  ['init_5fprocess',['init_process',['../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3',1,'MUtils']]],
+  ['ipcchannel',['IPCChannel',['../d5/dfe/class_m_utils_1_1_i_p_c_channel.html',1,'MUtils']]]
 ];
index 78ae639..e409b67 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['keccak',['Keccak',['../dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html',1,'MUtils::Hash']]]
+  ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html',1,'MUtils']]]
 ];
index 3281d97..78ae639 100644 (file)
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['make_5ftemp_5ffile',['make_temp_file',['../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005',1,'MUtils']]],
-  ['make_5funique_5ffile',['make_unique_file',['../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536',1,'MUtils']]]
+  ['keccak',['Keccak',['../dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html',1,'MUtils::Hash']]]
 ];
index de939ce..421341b 100644 (file)
@@ -1,7 +1,13 @@
 var searchData=
 [
-  ['natural_5fstring_5fsort',['natural_string_sort',['../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba',1,'MUtils']]],
-  ['next_5frand_5fstr',['next_rand_str',['../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570',1,'MUtils']]],
-  ['next_5frand_5fu32',['next_rand_u32',['../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112',1,'MUtils']]],
-  ['next_5frand_5fu64',['next_rand_u64',['../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a',1,'MUtils']]]
+  ['make_5ftemp_5ffile',['make_temp_file',['../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb',1,'MUtils']]],
+  ['make_5funique_5ffile',['make_unique_file',['../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d',1,'MUtils']]],
+  ['mutils',['MUtils',['../d3/da6/namespace_m_utils.html',1,'']]],
+  ['mutils_5fbool2str',['MUTILS_BOOL2STR',['../d5/d3b/_global_8h.html#a177ecbfe7701c2ac04bb8bdeb208773a',1,'Global.h']]],
+  ['mutils_5fdelete',['MUTILS_DELETE',['../d5/d3b/_global_8h.html#ad42b1946a83df3bd76734d5ab691fd0d',1,'Global.h']]],
+  ['mutils_5fdelete_5farray',['MUTILS_DELETE_ARRAY',['../d5/d3b/_global_8h.html#aa544a37b80f1ab9d86f439a7666e9aa8',1,'Global.h']]],
+  ['mutils_5fqstr',['MUTILS_QSTR',['../d5/d3b/_global_8h.html#a04d63f6f60c90f8e3c4029824a7352b0',1,'Global.h']]],
+  ['mutils_5futf8',['MUTILS_UTF8',['../d5/d3b/_global_8h.html#a88b0902153ea537b12d86267af20eb3f',1,'Global.h']]],
+  ['mutils_5fwchr',['MUTILS_WCHR',['../d5/d3b/_global_8h.html#af55d43b39d3f41cf090c138ed190ee6e',1,'Global.h']]],
+  ['mutils_5fzero_5fmemory',['MUTILS_ZERO_MEMORY',['../d5/d3b/_global_8h.html#a1fe39de37351efa3ca46bdc8653e1f25',1,'Global.h']]]
 ];
index 386600c..ecffc94 100644 (file)
@@ -1,4 +1,7 @@
 var searchData=
 [
-  ['parity',['parity',['../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c',1,'MUtils']]]
+  ['natural_5fstring_5fsort',['natural_string_sort',['../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f',1,'MUtils']]],
+  ['next_5frand_5fstr',['next_rand_str',['../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c',1,'MUtils']]],
+  ['next_5frand_5fu32',['next_rand_u32',['../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3',1,'MUtils']]],
+  ['next_5frand_5fu64',['next_rand_u64',['../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c',1,'MUtils']]]
 ];
index 0715c8f..f923f06 100644 (file)
@@ -1,7 +1,4 @@
 var searchData=
 [
-  ['regexp_5fparse_5fuint32',['regexp_parse_uint32',['../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 &amp;value)'],['../d5/d3b/_global_8h.html#a367969a260da994876d19c9f7ee40606',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)']]],
-  ['registrykey',['RegistryKey',['../da/d35/class_m_utils_1_1_registry_1_1_registry_key.html',1,'MUtils::Registry']]],
-  ['remove_5fdirectory',['remove_directory',['../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d',1,'MUtils']]],
-  ['remove_5ffile',['remove_file',['../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9',1,'MUtils']]]
+  ['parity',['parity',['../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b',1,'MUtils']]]
 ];
index c5890a5..45b0c01 100644 (file)
@@ -1,4 +1,7 @@
 var searchData=
 [
-  ['spongestatestruct',['spongeStateStruct',['../d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html',1,'MUtils::Hash::Internal::KeccakImpl']]]
+  ['regexp_5fparse_5fuint32',['regexp_parse_uint32',['../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 &amp;value)'],['../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)']]],
+  ['registrykey',['RegistryKey',['../da/d35/class_m_utils_1_1_registry_1_1_registry_key.html',1,'MUtils::Registry']]],
+  ['remove_5fdirectory',['remove_directory',['../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d',1,'MUtils']]],
+  ['remove_5ffile',['remove_file',['../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6',1,'MUtils']]]
 ];
index aaed9d2..c5890a5 100644 (file)
@@ -1,7 +1,4 @@
 var searchData=
 [
-  ['taskbar7',['Taskbar7',['../d2/d52/class_m_utils_1_1_taskbar7.html',1,'MUtils']]],
-  ['temp_5ffolder',['temp_folder',['../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292',1,'MUtils']]],
-  ['trim_5fleft',['trim_left',['../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c',1,'MUtils::trim_left(QString &amp;str)'],['../d5/d3b/_global_8h.html#a8680aeaeb1118353bd099e26ba7d6123',1,'MUtils::trim_left(const QString &amp;str)']]],
-  ['trim_5fright',['trim_right',['../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd',1,'MUtils::trim_right(QString &amp;str)'],['../d5/d3b/_global_8h.html#a3eb47d6ca49b2700622e3fe99faf14d8',1,'MUtils::trim_right(const QString &amp;str)']]]
+  ['spongestatestruct',['spongeStateStruct',['../d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html',1,'MUtils::Hash::Internal::KeccakImpl']]]
 ];
index d8e4d05..b0a2bec 100644 (file)
@@ -1,5 +1,7 @@
 var searchData=
 [
-  ['updatechecker',['UpdateChecker',['../d0/d8a/class_m_utils_1_1_update_checker.html',1,'MUtils']]],
-  ['updatecheckerinfo',['UpdateCheckerInfo',['../d1/d0d/class_m_utils_1_1_update_checker_info.html',1,'MUtils']]]
+  ['taskbar7',['Taskbar7',['../d2/d52/class_m_utils_1_1_taskbar7.html',1,'MUtils']]],
+  ['temp_5ffolder',['temp_folder',['../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34',1,'MUtils']]],
+  ['trim_5fleft',['trim_left',['../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705',1,'MUtils::trim_left(QString &amp;str)'],['../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b',1,'MUtils::trim_left(const QString &amp;str)']]],
+  ['trim_5fright',['trim_right',['../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a',1,'MUtils::trim_right(QString &amp;str)'],['../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d',1,'MUtils::trim_right(const QString &amp;str)']]]
 ];
index 367cd93..d8e4d05 100644 (file)
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['version',['Version',['../d1/d32/class_m_utils_1_1_version.html',1,'MUtils']]]
+  ['updatechecker',['UpdateChecker',['../d0/d8a/class_m_utils_1_1_update_checker.html',1,'MUtils']]],
+  ['updatecheckerinfo',['UpdateCheckerInfo',['../d1/d0d/class_m_utils_1_1_update_checker_info.html',1,'MUtils']]]
 ];
diff --git a/docs/search/all_f.html b/docs/search/all_f.html
new file mode 100644 (file)
index 0000000..3bf97c6
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/search/all_f.js b/docs/search/all_f.js
new file mode 100644 (file)
index 0000000..367cd93
--- /dev/null
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['version',['Version',['../d1/d32/class_m_utils_1_1_version.html',1,'MUtils']]]
+];
diff --git a/docs/search/defines_0.html b/docs/search/defines_0.html
new file mode 100644 (file)
index 0000000..e53ef23
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/search/defines_0.js b/docs/search/defines_0.js
new file mode 100644 (file)
index 0000000..7eea83b
--- /dev/null
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['mutils_5fbool2str',['MUTILS_BOOL2STR',['../d5/d3b/_global_8h.html#a177ecbfe7701c2ac04bb8bdeb208773a',1,'Global.h']]],
+  ['mutils_5fdelete',['MUTILS_DELETE',['../d5/d3b/_global_8h.html#ad42b1946a83df3bd76734d5ab691fd0d',1,'Global.h']]],
+  ['mutils_5fdelete_5farray',['MUTILS_DELETE_ARRAY',['../d5/d3b/_global_8h.html#aa544a37b80f1ab9d86f439a7666e9aa8',1,'Global.h']]],
+  ['mutils_5fqstr',['MUTILS_QSTR',['../d5/d3b/_global_8h.html#a04d63f6f60c90f8e3c4029824a7352b0',1,'Global.h']]],
+  ['mutils_5futf8',['MUTILS_UTF8',['../d5/d3b/_global_8h.html#a88b0902153ea537b12d86267af20eb3f',1,'Global.h']]],
+  ['mutils_5fwchr',['MUTILS_WCHR',['../d5/d3b/_global_8h.html#af55d43b39d3f41cf090c138ed190ee6e',1,'Global.h']]],
+  ['mutils_5fzero_5fmemory',['MUTILS_ZERO_MEMORY',['../d5/d3b/_global_8h.html#a1fe39de37351efa3ca46bdc8653e1f25',1,'Global.h']]]
+];
index f2c4c9a..b41c51c 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['available_5fcodepages',['available_codepages',['../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b',1,'MUtils']]]
+  ['available_5fcodepages',['available_codepages',['../d3/da6/namespace_m_utils.html#a2275e64c3c74dea855c39b66be67f705',1,'MUtils']]]
 ];
index 3281d97..f8da9ee 100644 (file)
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['make_5ftemp_5ffile',['make_temp_file',['../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005',1,'MUtils']]],
-  ['make_5funique_5ffile',['make_unique_file',['../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536',1,'MUtils']]]
+  ['clean_5ffile_5fname',['clean_file_name',['../d3/da6/namespace_m_utils.html#afd8eb699de88edd73e47fe2e41873385',1,'MUtils']]],
+  ['clean_5ffile_5fpath',['clean_file_path',['../d3/da6/namespace_m_utils.html#ad801fab93087c31d764ad15295fe3a88',1,'MUtils']]]
 ];
index de939ce..895c41d 100644 (file)
@@ -1,7 +1,4 @@
 var searchData=
 [
-  ['natural_5fstring_5fsort',['natural_string_sort',['../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba',1,'MUtils']]],
-  ['next_5frand_5fstr',['next_rand_str',['../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570',1,'MUtils']]],
-  ['next_5frand_5fu32',['next_rand_u32',['../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112',1,'MUtils']]],
-  ['next_5frand_5fu64',['next_rand_u64',['../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a',1,'MUtils']]]
+  ['init_5fprocess',['init_process',['../d3/da6/namespace_m_utils.html#a0ecb5d72f33a7b6feadd7deb8ed46cc3',1,'MUtils']]]
 ];
index 386600c..041659c 100644 (file)
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['parity',['parity',['../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c',1,'MUtils']]]
+  ['make_5ftemp_5ffile',['make_temp_file',['../d3/da6/namespace_m_utils.html#a29461116550863e8730f3f4ec479bbcb',1,'MUtils']]],
+  ['make_5funique_5ffile',['make_unique_file',['../d3/da6/namespace_m_utils.html#af9afe3821ae9bef7bdf56a4183fdea0d',1,'MUtils']]]
 ];
index 4c66f69..ecffc94 100644 (file)
@@ -1,6 +1,7 @@
 var searchData=
 [
-  ['regexp_5fparse_5fuint32',['regexp_parse_uint32',['../d5/d3b/_global_8h.html#a45cb0d1e6a55cf5ffda3b626c25fd957',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 &amp;value)'],['../d5/d3b/_global_8h.html#a367969a260da994876d19c9f7ee40606',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)']]],
-  ['remove_5fdirectory',['remove_directory',['../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d',1,'MUtils']]],
-  ['remove_5ffile',['remove_file',['../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9',1,'MUtils']]]
+  ['natural_5fstring_5fsort',['natural_string_sort',['../d3/da6/namespace_m_utils.html#a4d4c545ea06892f6487f15a48808564f',1,'MUtils']]],
+  ['next_5frand_5fstr',['next_rand_str',['../d3/da6/namespace_m_utils.html#ac583617546d5ae100ce7436546d9662c',1,'MUtils']]],
+  ['next_5frand_5fu32',['next_rand_u32',['../d3/da6/namespace_m_utils.html#a1c9832c1d645a2c90e9bd52d57d843b3',1,'MUtils']]],
+  ['next_5frand_5fu64',['next_rand_u64',['../d3/da6/namespace_m_utils.html#ad7edd4aece64faf3aa16c9509243608c',1,'MUtils']]]
 ];
index f777269..f923f06 100644 (file)
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['temp_5ffolder',['temp_folder',['../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292',1,'MUtils']]],
-  ['trim_5fleft',['trim_left',['../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c',1,'MUtils::trim_left(QString &amp;str)'],['../d5/d3b/_global_8h.html#a8680aeaeb1118353bd099e26ba7d6123',1,'MUtils::trim_left(const QString &amp;str)']]],
-  ['trim_5fright',['trim_right',['../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd',1,'MUtils::trim_right(QString &amp;str)'],['../d5/d3b/_global_8h.html#a3eb47d6ca49b2700622e3fe99faf14d8',1,'MUtils::trim_right(const QString &amp;str)']]]
+  ['parity',['parity',['../d3/da6/namespace_m_utils.html#aea4a212153b09b24b04f30ef5159f29b',1,'MUtils']]]
 ];
diff --git a/docs/search/functions_6.html b/docs/search/functions_6.html
new file mode 100644 (file)
index 0000000..c7bc6fb
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js
new file mode 100644 (file)
index 0000000..86f9020
--- /dev/null
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['regexp_5fparse_5fuint32',['regexp_parse_uint32',['../d3/da6/namespace_m_utils.html#ad2a851b289ee66873d3a1ec86f5f34eb',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 &amp;value)'],['../d3/da6/namespace_m_utils.html#a81704d66d34e37d3e0e159b5f436babf',1,'MUtils::regexp_parse_uint32(const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)']]],
+  ['remove_5fdirectory',['remove_directory',['../d3/da6/namespace_m_utils.html#a4d451ddc82668d1298f2922f62474b5d',1,'MUtils']]],
+  ['remove_5ffile',['remove_file',['../d3/da6/namespace_m_utils.html#a5a14e75627eebd09efc37898d74c5ac6',1,'MUtils']]]
+];
diff --git a/docs/search/functions_7.html b/docs/search/functions_7.html
new file mode 100644 (file)
index 0000000..7f10e2b
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js
new file mode 100644 (file)
index 0000000..7d9d593
--- /dev/null
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['temp_5ffolder',['temp_folder',['../d3/da6/namespace_m_utils.html#a3f198156e8be91f3e74dd9ed69ffaa34',1,'MUtils']]],
+  ['trim_5fleft',['trim_left',['../d3/da6/namespace_m_utils.html#a20b8fc56856ee904caaded756399e705',1,'MUtils::trim_left(QString &amp;str)'],['../d3/da6/namespace_m_utils.html#ae43bc17b6fa4ee2287099c4ae095483b',1,'MUtils::trim_left(const QString &amp;str)']]],
+  ['trim_5fright',['trim_right',['../d3/da6/namespace_m_utils.html#a6118cf23d2b771fae1ad159c7ea6686a',1,'MUtils::trim_right(QString &amp;str)'],['../d3/da6/namespace_m_utils.html#a3bcb0fce5181ded3c54456379147009d',1,'MUtils::trim_right(const QString &amp;str)']]]
+];
diff --git a/docs/search/namespaces_0.html b/docs/search/namespaces_0.html
new file mode 100644 (file)
index 0000000..becd52b
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.12"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/search/namespaces_0.js b/docs/search/namespaces_0.js
new file mode 100644 (file)
index 0000000..6043d60
--- /dev/null
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['mutils',['MUtils',['../d3/da6/namespace_m_utils.html',1,'']]]
+];
index 6c81df2..4cc1c92 100644 (file)
@@ -1,24 +1,30 @@
 var indexSectionsWithContent =
 {
-  0: "_abgijkmnprstuv",
+  0: "_abcgijkmnprstuv",
   1: "_bijkrstuv",
-  2: "g",
-  3: "amnprt"
+  2: "m",
+  3: "g",
+  4: "acimnprt",
+  5: "m"
 };
 
 var indexSectionNames =
 {
   0: "all",
   1: "classes",
-  2: "files",
-  3: "functions"
+  2: "namespaces",
+  3: "files",
+  4: "functions",
+  5: "defines"
 };
 
 var indexSectionLabels =
 {
   0: "All",
   1: "Classes",
-  2: "Files",
-  3: "Functions"
+  2: "Namespaces",
+  3: "Files",
+  4: "Functions",
+  5: "Macros"
 };
 
index 4e4f06a..2faaa3b 100644 (file)
@@ -20,9 +20,9 @@
 //////////////////////////////////////////////////////////////////////////////////
 
 /**
-* @file
-* @brief This file contains miscellaneous functions that are generally useful for Qt-based applications
-*/
+ * @file
+ * @brief This file contains miscellaneous functions that are generally useful for Qt-based applications
+ */
 
 #pragma once
 
@@ -33,6 +33,9 @@ class QProcess;
 
 ///////////////////////////////////////////////////////////////////////////////
 
+/** \cond INTERNAL
+ */
+
 //MUtils API
 #ifdef _MSC_VER
 #      ifdef MUTILS_DLL_EXPORT
@@ -48,7 +51,6 @@ class QProcess;
 #      define MUTILS_API
 #endif
 
-//Helper Macros
 #define MUTILS_MAKE_STRING_HELPER(X) #X
 #define MUTILS_MAKE_STRING(X) MUTILS_MAKE_STRING_HELPER(X)
 #define MUTILS_COMPILER_WARNING(TXT) __pragma(message(__FILE__ "(" MUTILS_MAKE_STRING(__LINE__) ") : warning: " TXT))
@@ -73,6 +75,9 @@ class QProcess;
        #endif
 #endif
 
+/** \endcond INTERNAL
+ */
+
 ///////////////////////////////////////////////////////////////////////////////
 
 namespace MUtils
@@ -86,7 +91,19 @@ namespace MUtils
        */
        MUTILS_API const QString& temp_folder(void);
 
-       //Process Utils
+       /**
+       * \brief Initialize a given [QProcess](http://doc.qt.io/qt-4.8/qprocess.html) object.
+       *
+       * This function prepares a given [QProcess](http://doc.qt.io/qt-4.8/qprocess.html) object for sub-process creation. It does so by setting up combined *stdout* and *stderr* redirection for the sub-process, cleaning up the sub-process' environment variables, as well as setting up the sub-process' working directory. Optionally, the *Temp* directory for the sub-process can be set to the application-specific *Temp* directory, which is achieved by overwriting the corresponding environment variables (e.g. `TMP` and `TEMP`). Furthermore, additional paths can be added to the `PATH` environment variable of the sub-process.
+       *
+       * \param process A reference to the [QProcess](http://doc.qt.io/qt-4.8/qprocess.html) object to be initialized. The [QProcess](http://doc.qt.io/qt-4.8/qprocess.html) object must be initialized *before* calling the `QProcess::start()` method.
+       *
+       * \param process A read-only reference to a QString holding the path of the working directory for the sub-process.
+       *
+       * \param bReplaceTempDir If set to `true`, the *Temp* directory for the sub-process is set to the application-specific *Temp* directory; if set to `false`, the default *Temp* directory is retained.
+       *
+       * \param extraPaths A read-only pointer to a QStringList object containing additional paths that will be added (prepended) to the sub-process' `PATH` environment variable. This parameter can be `NULL`, in which case *no* additional paths are added.
+       */
        MUTILS_API void init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir = true, const QStringList *const extraPaths = NULL);
 
        /**
@@ -238,7 +255,26 @@ namespace MUtils
        */
        MUTILS_API void natural_string_sort(QStringList &list, const bool bIgnoreCase);
 
+       /**
+       * \brief Clean up a file name string
+       *
+       * This function ensures that the given string is a valid file (or directory) name. It does so by replacing any illegal characters, i.e. any characters *not* allowed in file names (which explicitly *includes* directory separators). Furthermore, the function will trim/remove specific characters that are *not* allowed directly at the beginning or end of a file name. Finally, the function takes care or special "reserved" file names that are forbidden by the file system. You can use this function to convert user inputs into a valid file name.
+       *
+       * \param list A read-only reference to the QString holding the original, potentially invalid file name.
+       *
+       * \return The function returns a QString holding a valid file name. If, however, the input string was empty or contained only white-space characters, the returned sting can be empty.
+       */
        MUTILS_API QString clean_file_name(const QString &name);
+
+       /**
+       * \brief Clean up a file path string
+       *
+       * This function ensures that the given string is a valid file (or directory) path. It does so by replacing any illegal characters, i.e. any characters *not* allowed in file paths. Directory separators are preserved, but they will be "canonicalized". Furthermore, in each path component, the function will trim/remove specific characters that are *not* allowed directly at the beginning or end of a path component. Finally, the function takes care or special "reserved" file names that are forbidden by the file system. You can use this function to convert user inputs into a valid file path.
+       *
+       * \param list A read-only reference to the QString holding the original, potentially invalid file path.
+       *
+       * \return The function returns a QString holding a valid file path. If, however, the input string was empty or contained only white-space characters, the returned sting can be empty.
+       */
        MUTILS_API QString clean_file_path(const QString &path);
 
        /**
@@ -290,17 +326,30 @@ namespace MUtils
 
 ///////////////////////////////////////////////////////////////////////////////
 
-//Delete helper
+/** \brief Deletes the object, if and only if the given pointer is *not* NULL. Also sets pointer to NULL after object has been deleted.
+*/
 #define MUTILS_DELETE(PTR) do { if((PTR)) { delete (PTR); (PTR) = NULL; } } while(0)
+
+/** \brief Deletes the array, if and only if the given pointer is *not* NULL. Also sets pointer to NULL after array has been deleted.
+*/
 #define MUTILS_DELETE_ARRAY(PTR) do { if((PTR)) { delete [] (PTR); (PTR) = NULL; } } while(0)
 
-//Zero memory
+/** \brief Clears the specified variable or struct by setting all of its bytes to *zero* (`0x00`). Do **not** use for arrays.
+*/
 #define MUTILS_ZERO_MEMORY(PTR) memset(&(PTR), 0, sizeof((PTR)))
 
-//String conversion macros
+/** \brief Converts a given QString object to a `wchar_t*` pointer. Does **not** copy the string data, so do **not** free the pointer! The returned pointer only remains valid until the underlying QString is modified or goes out of scope.
+*/
 #define MUTILS_WCHR(STR) (reinterpret_cast<const wchar_t*>((STR).utf16()))
+
+/** \brief Converts a given QString object to a `char*` pointer. The string is converted to UTF-8 encoding. The pointer is valid *only* while the expression is being evaluated, so do **not** free or store this pointer! Mainly useful for function calls that require a `char*` argument.
+*/
 #define MUTILS_UTF8(STR) ((STR).toUtf8().constData())
+
+/** \brief Creates a QString object from a given `wchar_t*` buffer. The buffer is expected to conatin a NULL-terminated string in UTF-16 encoding. The string data is copied into the new QString object, however the original buffer will **not** be freed automatically!
+*/
 #define MUTILS_QSTR(STR) (QString::fromUtf16(reinterpret_cast<const unsigned short*>((STR))))
 
-//Boolean helper
+/** \brief Converts a boolean expression into a string. A *true* boolean expression is converted to the string `"1"`; a *false* boolean expression is converted to the string `"0"`.
+*/
 #define MUTILS_BOOL2STR(X) ((X) ? "1" : "0")
index 7bd871c..6dd7798 100644 (file)
@@ -6,21 +6,6 @@
  * The **MUtilities** library is a collection of routines and classes to extend the [*Qt cross-platform framework*](http://qt-project.org/). It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the [**LameXP**](http://lamexp.sourceforge.net/) application: Over the years, a lot of code, **not** really specific to *LameXP*, had accumulated in the *LameXP* code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion &ndash; which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the **MUtilities** (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of *LameXP* and [*other OpenSource projects*](https://github.com/lordmulder).
  * 
  * 
- * # Project Structure
- * 
- * The *MUtilities* project directory is organized as follows:
- * 
- * - `bin/` &ndash; compiled library files (static or shared), link those files in projects that use the MUtilities library
- * - `docs/` &ndash; programming interface documentation, generated with Doxygen tool
- * - `etc/` &ndash; miscellaneous files, everything that doesn't fit in anywhere else
- * - `include/` &ndash; public header files, include this directory in projects that use the MUtilities library
- * - `obj/` &ndash; object code files, intermediate files generated during the build process
- * - `res/` &ndash; resource files, required for building the MUtilities library
- * - `src/` &ndash; source code files, required for building the MUtilities library (third-party code in `src/3rd_party/`)
- * - `test/` &ndash; unit tests, based on Google Test framework
- * - `tmp/` &ndash; temporary files, automatically generated during the build process
- * 
- * 
  * # API Documentation
  * 
  * The public API of the *MUtilities* library is defined in the following header files (select file for details):
  *         qDebug("Random number: %u\n", MUtils::next_rand_u32());
  *     }
  * 
- * ## Build Notes
- * 
- * - In order to use the *MUtilities* library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is *not* covered by this document.
- * - Additionally, make sure that *MUtilities'* `include/` directory is contained in your "Additional Include Directories" and that the *MUtilities'* `bin/` directory is contained in your "Additional Library Directories".
- * - Finally, make sure that your project links against the `MUtils32-1.lib` library file. For each build configuration, pick the proper **.lib** file from the corresponding `bin/<platform>/<config>/` directory!
- * - If your projects intends to use the *MUtilities* library as a **static** library, then the macro `MUTILS_STATIC_LIB` *must* be added to your project's "Preprocessor Definitions".
- * 
  * 
  * # License
  *