OSDN Git Service

Some documentation updates.
authorLoRd_MuldeR <mulder2@gmx.de>
Mon, 19 Dec 2016 16:09:58 +0000 (17:09 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Mon, 19 Dec 2016 16:09:58 +0000 (17:09 +0100)
76 files changed:
README.html
README.md
docs/annotated.html
docs/classes.html
docs/d0/d8a/class_m_utils_1_1_update_checker.html
docs/d0/dd7/_version_8h_source.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/d0a/_taskbar7_8h_source.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/d37/_hash___blake2_8h_source.html
docs/d1/d93/_i_p_c_channel_8h_source.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/d13/_startup_8h_source.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/d5c/_registry_8h_source.html
docs/d3/dc1/_o_s_support_8h_source.html
docs/d3/dc6/class_m_utils_1_1_taskbar7-members.html
docs/d3/dd5/_error_handler_8h_source.html
docs/d4/d85/_job_object_8h_source.html
docs/d5/d3b/_global_8h.html
docs/d5/d3b/_global_8h_source.html
docs/d5/db0/_sound_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/d6/d83/_update_checker_8h_source.html
docs/d6/ddd/_terminal_8h_source.html
docs/d7/d73/_translation_8h_source.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/da/d5d/_g_u_i_8h_source.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/dd/dea/_hash___keccak_8h_source.html
docs/df/d98/_exception_8h_source.html
docs/dir_b076b53667bc06ebb413a190e197fc7b.html
docs/dir_d44c64559bbebec7f509842c48db8b23.html
docs/files.html
docs/hierarchy.html
docs/index.html
docs/search/all_1.js
docs/search/all_2.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.html [new file with mode: 0644]
docs/search/all_e.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.html [new file with mode: 0644]
docs/search/functions_5.js [new file with mode: 0644]
docs/search/searchdata.js
include/MUtils/Global.h

index 41c5884..f379771 100644 (file)
@@ -42,15 +42,18 @@ document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\
 <ul>
 <li><a href="#introduction"><span class="toc-section-number">1</span> Introduction</a></li>
 <li><a href="#project-structure"><span class="toc-section-number">2</span> Project Structure</a></li>
-<li><a href="#api-documentation"><span class="toc-section-number">3</span> API Documentation</a></li>
-<li><a href="#license"><span class="toc-section-number">4</span> License</a></li>
-<li><a href="#acknowledgement"><span class="toc-section-number">5</span> Acknowledgement</a></li>
+<li><a href="#example"><span class="toc-section-number">3</span> Example</a><ul>
+<li><a href="#build-notes"><span class="toc-section-number">3.1</span> Build Notes</a></li>
+</ul></li>
+<li><a href="#api-documentation"><span class="toc-section-number">4</span> API Documentation</a></li>
+<li><a href="#license"><span class="toc-section-number">5</span> License</a></li>
+<li><a href="#acknowledgement"><span class="toc-section-number">6</span> Acknowledgement</a></li>
 </ul>
 </nav>
 <h1 id="introduction"><span class="header-section-number">1</span> Introduction</h1>
 <p>The <strong>MUtilities</strong> 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 &quot;side product&quot; of the <a href="http://lamexp.sourceforge.net/"><strong>LameXP</strong></a> application: Over the years, a lot of code, <strong>not</strong> 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 &quot;copy &amp; paste&quot; fashion â€“ 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 <strong>MUtilities</strong> (aka &quot;MuldeR's Utilities for Qt&quot;) 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 id="project-structure"><span class="header-section-number">2</span> Project Structure</h1>
-<p>The <em>MUtilities</em> project directory is structured as follows:</p>
+<p>The <em>MUtilities</em> project directory is organized as follows:</p>
 <ul>
 <li><code>bin/</code> â€“ compiled library files (static or shared), link those files in projects that use the MUtilities library</li>
 <li><code>docs/</code> â€“ programming interface documentation, generated with Doxygen tool</li>
@@ -62,9 +65,25 @@ document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\
 <li><code>test/</code> â€“ unit tests, based on Google Test framework</li>
 <li><code>tmp/</code> â€“ temporary files, automatically generated during the build process</li>
 </ul>
-<h1 id="api-documentation"><span class="header-section-number">3</span> API Documentation</h1>
+<h1 id="example"><span class="header-section-number">3</span> Example</h1>
+<p>Here is a minimal example on how to use the <em>MUtilities</em> library in your project:</p>
+<pre><code>//MUtils
+#include &lt;MUtils/Global.h&gt;
+
+int main(int argc, char **argv)
+{
+    qDebug(&quot;Random number: %u\n&quot;, MUtils::next_rand_u32());
+}</code></pre>
+<h2 id="build-notes"><span class="header-section-number">3.1</span> 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 &quot;Additional Include Directories&quot; and that the <em>MUtilities'</em> <code>bin/</code> directory is contained in your &quot;Additional Library Directories&quot;.</li>
+<li>Finally, make sure that your project links against the <code>MUtils32-1.lib</code> library file. For each build configuration you have to pick the proper <strong>.lib</strong> file from the correspnding <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 <strong>static</strong> library, then the macro <code>MUTILS_STATIC_LIB</code> <em>must</em> be added to your project's &quot;Preprocessor Definitions&quot;.</li>
+</ul>
+<h1 id="api-documentation"><span class="header-section-number">4</span> API Documentation</h1>
 <p>A fully-fledged documentation of the <em>MUtilities</em> programming interface (API) is available thanks to <a href="http://www.stack.nl/~dimitri/doxygen/"><em>Doxygen</em></a>. Please see <a href="docs/index.html"><strong><code>docs/index.html</code></strong></a> for details!</p>
-<h1 id="license"><span class="header-section-number">4</span> License</h1>
+<h1 id="license"><span class="header-section-number">5</span> 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><code>MUtilities - MuldeR&#39;s Utilities for Qt
 Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;. Some rights reserved.
@@ -82,7 +101,7 @@ Lesser General Public License for more details.
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.</code></pre>
-<h1 id="acknowledgement"><span class="header-section-number">5</span> Acknowledgement</h1>
+<h1 id="acknowledgement"><span class="header-section-number">6</span> Acknowledgement</h1>
 <p>The following third-party code is used in the MUtilities library:</p>
 <ul>
 <li><p><strong>Keccak/SHA-3 Reference Implementation</strong><br />
index 8df2249..50b8267 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ The **MUtilities** library is a collection of routines and classes to extend the
 
 # Project Structure
 
-The *MUtilities* project directory is structured as follows:
+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
@@ -21,6 +21,26 @@ The *MUtilities* project directory is structured as follows:
 * `tmp/` &ndash; temporary files, automatically generated during the build process
 
 
+# Example
+
+Here is a minimal example on how to use the *MUtilities* library in your project:
+
+    //MUtils
+    #include <MUtils/Global.h>
+    
+    int main(int argc, char **argv)
+    {
+        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 you have to pick the proper **.lib** file from the correspnding `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".
+
+
 # API Documentation
 
 A fully-fledged documentation of the *MUtilities* programming interface (API) is available thanks to [*Doxygen*](http://www.stack.nl/~dimitri/doxygen/). Please see [**`docs/index.html`**](docs/index.html) for details!
index a7a0b86..4c6d3fb 100644 (file)
@@ -90,7 +90,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 6ff9afb..19e6e16 100644 (file)
@@ -90,7 +90,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index e32234e..71f38eb 100644 (file)
@@ -158,7 +158,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>testKnownHosts</b> (v
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index b011ce0..d40adf5 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 02a4990..2cc3e56 100644 (file)
@@ -104,7 +104,7 @@ unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>bitsAvailable
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 218d624..46dc3e4 100644 (file)
@@ -92,7 +92,7 @@ QByteArray&#160;</td><td class="memItemRight" valign="bottom"><b>finalize</b> (c
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 56f7afc..2adf871 100644 (file)
@@ -77,7 +77,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 965cb97..6dde72f 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index b5ec11d..67915cd 100644 (file)
@@ -114,7 +114,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>UpdateChecker</b></t
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index ce1b2ca..7d7e471 100644 (file)
@@ -104,7 +104,7 @@ static const char *const&#160;</td><td class="memItemRight" valign="bottom"><b>c
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index e4c982b..f723f05 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 6c5bc3b..2af1fbe 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index d00d462..54099ef 100644 (file)
@@ -88,7 +88,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 9d621f4..8628013 100644 (file)
@@ -82,7 +82,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 0e1f535..7621406 100644 (file)
@@ -72,7 +72,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index dcac4a1..e942f77 100644 (file)
@@ -106,7 +106,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>setOverlayIcon</b> (c
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 1033746..cf4a0c6 100644 (file)
@@ -96,7 +96,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index c9d9f38..2528491 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 6765cd6..a249db4 100644 (file)
@@ -84,7 +84,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index ce9f154..4db949b 100644 (file)
@@ -81,7 +81,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 33b9142..c785d97 100644 (file)
@@ -81,7 +81,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 4a613e0..e64607e 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 3162122..d1ca0b0 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 348fa8f..3df244d 100644 (file)
@@ -84,7 +84,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 0c951f5..289fb9d 100644 (file)
@@ -72,7 +72,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 17b5734..15fc837 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 77e87ab..b2e01ff 100644 (file)
@@ -169,22 +169,47 @@ QString&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
 <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"><a id="a45cb0d1e6a55cf5ffda3b626c25fd957"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::regexp_parse_uint32</b> (const QRegExp &amp;regexp, quint32 &amp;value)</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"><a id="a367969a260da994876d19c9f7ee40606"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::regexp_parse_uint32</b> (const QRegExp &amp;regexp, quint32 *values, const size_t &amp;count)</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"><a id="a4fcbdafffc1224776616fcc6aec8278b"></a>
-QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::available_codepages</b> (const bool &amp;noAliases=true)</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:a00af0daa1ae56f474746443002be6786"><td class="memItemLeft" align="right" valign="top"><a id="a00af0daa1ae56f474746443002be6786"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::Internal::selfTest</b> (const char *const buildKey, const bool debug)</td></tr>
-<tr class="separator:a00af0daa1ae56f474746443002be6786"><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>
 
@@ -420,6 +445,91 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::Internal::self
 
 </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>
 
@@ -624,7 +734,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::Internal::self
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 1348325..4d1e872 100644 (file)
@@ -67,7 +67,7 @@ $(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="l00114"></a><span class="lineno">  114</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="l00115"></a><span class="lineno">  115</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</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="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="comment">//Process Utils</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</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="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</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="l00136"></a><span class="lineno">  136</span>&#160;    </div><div class="line"><a name="l00144"></a><span class="lineno">  144</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="l00145"></a><span class="lineno">  145</span>&#160;    </div><div class="line"><a name="l00155"></a><span class="lineno">  155</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="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</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="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</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="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</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="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</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="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</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="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</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="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</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="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</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="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</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="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</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="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="comment">//Clean file path</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    MUTILS_API QString clean_file_name(<span class="keyword">const</span> QString &amp;name);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    MUTILS_API QString clean_file_path(<span class="keyword">const</span> QString &amp;path);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="comment">//Regular expressions</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> regexp_parse_uint32(<span class="keyword">const</span> QRegExp &amp;regexp, quint32 &amp;value);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    MUTILS_API <span class="keywordtype">bool</span> regexp_parse_uint32(<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="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">//Internationalization</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    MUTILS_API QStringList available_codepages(<span class="keyword">const</span> <span class="keywordtype">bool</span> &amp;noAliases = <span class="keyword">true</span>);</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;    <span class="comment">//Internal</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keyword">namespace </span>Internal</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;        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="l00290"></a><span class="lineno">  290</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="l00291"></a><span class="lineno">  291</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;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment">//Delete helper</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</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="l00298"></a><span class="lineno">  298</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="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">//Zero memory</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="preprocessor">#define MUTILS_ZERO_MEMORY(PTR) memset(&amp;(PTR), 0, sizeof((PTR)))</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment">//String conversion macros</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</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="l00305"></a><span class="lineno">  305</span>&#160;<span class="preprocessor">#define MUTILS_UTF8(STR) ((STR).toUtf8().constData())</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</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="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="comment">//Boolean helper</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</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>
+<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="l00114"></a><span class="lineno">  114</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="l00115"></a><span class="lineno">  115</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</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="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="comment">//Process Utils</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</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="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</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="l00136"></a><span class="lineno">  136</span>&#160;    </div><div class="line"><a name="l00144"></a><span class="lineno">  144</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="l00145"></a><span class="lineno">  145</span>&#160;    </div><div class="line"><a name="l00155"></a><span class="lineno">  155</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="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</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="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</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="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</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="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</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="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</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="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</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="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</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="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</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="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</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="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</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="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    MUTILS_API QString clean_file_name(<span class="keyword">const</span> QString &amp;name);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    MUTILS_API QString clean_file_path(<span class="keyword">const</span> QString &amp;path);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</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="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</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="l00306"></a><span class="lineno">  306</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno">  316</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="l00317"></a><span class="lineno">  317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="comment">//Internal</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keyword">namespace </span>Internal</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    {</div><div class="line"><a name="l00321"></a><span class="lineno">  321</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="l00322"></a><span class="lineno">  322</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="l00323"></a><span class="lineno">  323</span>&#160;    }</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="l00327"></a><span class="lineno">  327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="comment">//Delete helper</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</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="l00330"></a><span class="lineno">  330</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="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment">//Zero memory</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#define MUTILS_ZERO_MEMORY(PTR) memset(&amp;(PTR), 0, sizeof((PTR)))</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment">//String conversion macros</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</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="l00337"></a><span class="lineno">  337</span>&#160;<span class="preprocessor">#define MUTILS_UTF8(STR) ((STR).toUtf8().constData())</span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</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="l00339"></a><span class="lineno">  339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">//Boolean helper</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</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>
@@ -78,12 +78,14 @@ $(function() {
 <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><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index d5c02e7..6af2535 100644 (file)
@@ -72,7 +72,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index cbe8cf0..d0c8154 100644 (file)
@@ -84,7 +84,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index a783fef..a891c73 100644 (file)
@@ -112,7 +112,7 @@ static const quint32&#160;</td><td class="memItemRight" valign="bottom"><b>MAX_P
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index baf0779..c9ee502 100644 (file)
@@ -74,7 +74,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 9f01ee8..1b0f66b 100644 (file)
@@ -72,7 +72,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index a201fe0..bd7fc47 100644 (file)
@@ -72,7 +72,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 8693014..dc79ad9 100644 (file)
@@ -85,7 +85,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 5fd0f62..de7f398 100644 (file)
@@ -104,7 +104,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>enum_subkeys</b> (QSt
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index b5dad3d..073fbeb 100644 (file)
@@ -72,7 +72,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 70d63d2..f6d7aae 100644 (file)
@@ -117,7 +117,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>overrideFlag</b></td>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 6c0263f..9888534 100644 (file)
@@ -82,7 +82,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 2a7dc4e..55973a6 100644 (file)
@@ -86,7 +86,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>terminateJob</b> (uns
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index fcb70d1..614b287 100644 (file)
@@ -78,7 +78,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 7f4afb2..f6939f3 100644 (file)
@@ -122,7 +122,7 @@ QByteArray&#160;</td><td class="memItemRight" valign="bottom"><b>m_hashResult</b
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 85d25dd..36562da 100644 (file)
@@ -107,7 +107,7 @@ char&#160;</td><td class="memItemRight" valign="bottom"><b>brand</b> [0x40]</td>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 624a180..e179408 100644 (file)
@@ -74,7 +74,7 @@ $(function() {
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index edb3d44..ea7cc83 100644 (file)
@@ -70,7 +70,7 @@ $(function() {
 <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="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define MUTILS_PRINT_ERROR(FORMAT, ...) do \</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">    fflush(stdout); \</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">    fprintf(stderr, (FORMAT), __VA_ARGS__); \</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">    fflush(stderr); \</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">while(0)</span></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="preprocessor">#define MUTILS_EXCEPTION_HANDLER(COMMAND) do \</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">    try \</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">    { \</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">        do { COMMAND; } while(0); \</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">    } \</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">    catch(const std::exception &amp;error) \</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">    { \</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">        MUTILS_PRINT_ERROR(&quot;\nGURU MEDITATION !!!\n\nException error:\n%s\n&quot;, error.what()); \</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">        MUtils::OS::fatal_exit(L&quot;Unhandeled C++ exception error, application will exit!&quot;); \</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">    } \</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">    catch(...) \</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">    { \</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">        MUTILS_PRINT_ERROR(&quot;\nGURU MEDITATION !!!\n\nUnknown exception error!\n&quot;); \</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">        MUtils::OS::fatal_exit(L&quot;Unhandeled C++ exception error, application will exit!&quot;); \</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">    } \</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">while(0)</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#define MUTILS_THROW(MESSAGE) do \</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">    throw std::runtime_error((MESSAGE)); \</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">while(0)</span></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;<span class="preprocessor">#define MUTILS_THROW_FMT(MESSAGE, ...) do \</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">    char _message[256]; \</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">    _snprintf_s(_message, 256, _TRUNCATE, (MESSAGE), __VA_ARGS__); \</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">    throw std::runtime_error(_message); \</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">while(0)</span></div></div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:13 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index d3c8fce..c0c4363 100644 (file)
@@ -77,7 +77,7 @@ Files</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 9177167..9d6d6a1 100644 (file)
@@ -74,7 +74,7 @@ Directories</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index bbb85e6..bbb03b4 100644 (file)
@@ -90,7 +90,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:15 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index 52f8864..c95f13b 100644 (file)
@@ -83,7 +83,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:15 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index bb34ebe..f37c015 100644 (file)
@@ -73,7 +73,7 @@ $(function() {
 <div class="fragment"><div class="line">MUtilities - MuldeR<span class="stringliteral">&#39;s Utilities for Qt</span></div><div class="line"><span class="stringliteral">Copyright (C) 2004-2016 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;. Some rights reserved.</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">This library is free software; you can redistribute it and/or</span></div><div class="line"><span class="stringliteral">modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><span class="stringliteral">License as published by the Free Software Foundation; either</span></div><div class="line"><span class="stringliteral">version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">This library is distributed in the hope that it will be useful,</span></div><div class="line"><span class="stringliteral">but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><span class="stringliteral">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><span class="stringliteral">Lesser General Public License for more details.</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><span class="stringliteral">License along with this library; if not, write to the Free Software</span></div><div class="line"><span class="stringliteral">Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.</span></div></div><!-- fragment --> </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Mon Dec 19 2016 02:43:14 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
+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>
index d9ccfea..f2c4c9a 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['blake2',['Blake2',['../d1/d01/class_m_utils_1_1_hash_1_1_blake2.html',1,'MUtils::Hash']]]
+  ['available_5fcodepages',['available_codepages',['../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b',1,'MUtils']]]
 ];
index fa2e904..d9ccfea 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['global_2eh',['Global.h',['../d5/d3b/_global_8h.html',1,'']]]
+  ['blake2',['Blake2',['../d1/d01/class_m_utils_1_1_hash_1_1_blake2.html',1,'MUtils::Hash']]]
 ];
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..8414f45 100644 (file)
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['jobobject',['JobObject',['../dc/dd3/class_m_utils_1_1_job_object.html',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 c56547f..78ae639 100644 (file)
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['mulder_27s_20utilities_20for_20qt',['MuldeR&apos;s Utilities for Qt',['../index.html',1,'']]],
-  ['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..c56547f 100644 (file)
@@ -1,7 +1,6 @@
 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']]]
+  ['mulder_27s_20utilities_20for_20qt',['MuldeR&apos;s Utilities for Qt',['../index.html',1,'']]],
+  ['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']]]
 ];
index 386600c..de939ce 100644 (file)
@@ -1,4 +1,7 @@
 var searchData=
 [
-  ['parity',['parity',['../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c',1,'MUtils']]]
+  ['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']]]
 ];
index 8f1fc88..386600c 100644 (file)
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['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',['../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c',1,'MUtils']]]
 ];
index c5890a5..0715c8f 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',['../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']]]
 ];
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..aaed9d2 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',['../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)']]]
 ];
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_e.html b/docs/search/all_e.html
new file mode 100644 (file)
index 0000000..9b78086
--- /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_e.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_e.js b/docs/search/all_e.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']]]
+];
index 3281d97..f2c4c9a 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']]]
+  ['available_5fcodepages',['available_codepages',['../d5/d3b/_global_8h.html#a4fcbdafffc1224776616fcc6aec8278b',1,'MUtils']]]
 ];
index de939ce..3281d97 100644 (file)
@@ -1,7 +1,5 @@
 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',['../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005',1,'MUtils']]],
+  ['make_5funique_5ffile',['make_unique_file',['../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536',1,'MUtils']]]
 ];
index 386600c..de939ce 100644 (file)
@@ -1,4 +1,7 @@
 var searchData=
 [
-  ['parity',['parity',['../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c',1,'MUtils']]]
+  ['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']]]
 ];
index a2b89ea..386600c 100644 (file)
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['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',['../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c',1,'MUtils']]]
 ];
index f777269..4c66f69 100644 (file)
@@ -1,6 +1,6 @@
 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)']]]
+  ['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']]]
 ];
diff --git a/docs/search/functions_5.html b/docs/search/functions_5.html
new file mode 100644 (file)
index 0000000..54f53d0
--- /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_5.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_5.js b/docs/search/functions_5.js
new file mode 100644 (file)
index 0000000..f777269
--- /dev/null
@@ -0,0 +1,6 @@
+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)']]]
+];
index 521e94e..8da7011 100644 (file)
@@ -1,9 +1,9 @@
 var indexSectionsWithContent =
 {
-  0: "_bgijkmnprstuv",
+  0: "_abgijkmnprstuv",
   1: "_bijkrstuv",
   2: "g",
-  3: "mnprt",
+  3: "amnprt",
   4: "m"
 };
 
index cd20c11..4229f8a 100644 (file)
@@ -272,15 +272,47 @@ namespace MUtils
        */
        MUTILS_API void natural_string_sort(QStringList &list, const bool bIgnoreCase);
 
-       //Clean file path
+
        MUTILS_API QString clean_file_name(const QString &name);
        MUTILS_API QString clean_file_path(const QString &path);
 
-       //Regular expressions
+       /**
+       * \brief Parse regular expression results
+       *
+       * 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 *one* capture. Only the *first* capture is considered, additional captures are ignored.
+       *
+       * \param regexp A read-only reference to the [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) object whose result (capture) will be parsed. This [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) must already have been *successfully* matched against the respective input string, e.g. via `QRegExp::indexIn()`, prior to calling this function.
+       *
+       * \param value A reference to a variable of type `quint32`, where the unsigned 32-Bit representation of the result will be stored. The contents of this variable are *undefined*, if the function failed.
+       *
+       * \return The function returns `true`, if the regular expression's capture could be parsed successfully; it returns `false`, if the capture contains an invalid string or if there are insufficient captures in given the [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) object.
+       */
        MUTILS_API bool regexp_parse_uint32(const QRegExp &regexp, quint32 &value);
+
+       /**
+       * \brief Parse regular expression results
+       *
+       * 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 \p count captures. Only the *first* \p count captures are considered, additional captures are ignored.
+       *
+       * \param regexp A read-only reference to the [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) object whose results (captures) will be parsed. This [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) must already have been *successfully* matched against the respective input string, e.g. via `QRegExp::indexIn()`, prior to calling this function.
+       *
+       * \param value A pointer to an array of type `quint32`, where the unsigned 32-Bit representations of the results will be stored (the `n`-th result is stored at `value[n-1]`). The array must be at least \p count elements in length. The contents of this array are *undefined*, if the function failed.
+       *
+       * \param count Specifies the number of results (captures) in the given [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) object. The function tries to parse the first \p count captures and ignores any additional captures that may exist. This parameter also determines the required (minimum) length of the \p value array.
+       *
+       * \return The function returns `true`, if all of the regular expression's captures could be parsed successfully; it returns `false`, if any of the captures contain an invalid string or if there are insufficient captures in given the [QRegExp](http://doc.qt.io/qt-4.8/qregexp.html) object.
+       */
        MUTILS_API bool regexp_parse_uint32(const QRegExp &regexp, quint32 *values, const size_t &count);
 
-       //Internationalization
+       /**
+       * \brief Retrieve a list of all available codepages
+       *
+       * 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 `QTextCodec::codecForName()` function in order to obtain a corresponding [QTextCodec](http://doc.qt.io/qt-4.8/qtextcodec.html) object.
+       *
+       * \param noAliases If set to `true`, only distinct codepages are returned, i.e. any codepage aliases are discarded from the list; if set to `false`, the returned list may (and usually will) also contain codepage aliases.
+       *
+       * \return 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.
+       */
        MUTILS_API QStringList available_codepages(const bool &noAliases = true);
 
        //Internal