<p>The <b>MUtilities</b> library is a collection of routines and classes to extend the <ahref="http://qt-project.org/"><em>Qt cross-platform framework</em></a>. It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the <ahref="http://lamexp.sourceforge.net/"><b>LameXP</b></a> application: Over the years, a lot of code, <b>not</b> really specific to <em>LameXP</em>, had accumulated in the <em>LameXP</em> code base. Some of that code even had been used in other projects too, in a "copy & paste" 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 <b>MUtilities</b> (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of <em>LameXP</em> and <ahref="https://github.com/lordmulder"><em>other OpenSource projects</em></a>.</p>
<h1>Project Structure</h1>
<p>The <em>MUtilities</em> project directory is organized as follows:</p>
<ul>
<li><code>bin/</code>– 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>
<li><code>etc/</code>– miscellaneous files, everything that doesn't fit in anywhere else</li>
<li><code>include/</code>– public header files, include this directory in projects that use the MUtilities library</li>
<li><code>obj/</code>– object code files, intermediate files generated during the build process</li>
<li><code>res/</code>– resource files, required for building the MUtilities library</li>
<li><code>src/</code>– source code files, required for building the MUtilities library (third-party code in <code>src/3rd_party/</code>)</li>
<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>API Documentation</h1>
<p>The public API of the <em>MUtilities</em> library is defined in the following header files (select file for details):</p><ul>
<li><b><aclass="el"href="d5/d3b/_global_8h.html"title="This file contains miscellaneous functions that are generally useful for Qt-based applications...">Global.h</a></b>– miscellaneous useful functions</li>
<li>In order to use the <em>MUtilities</em> library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is <em>not</em> covered by this document.</li>
<li>Additionally, make sure that <em>MUtilities'</em><code>include/</code> directory is contained in your "Additional Include Directories" and that the <em>MUtilities'</em><code>bin/</code> directory is contained in your "Additional Library Directories".</li>
<li>Finally, make sure that your project links against the <code>MUtils32-1.lib</code> library file. For each build configuration, pick the proper **.lib** file from the corresponding <code>bin/<platform>/<config>/</code> directory!</li>
<li>If your projects intends to use the <em>MUtilities</em> library as a <b>static</b> library, then the macro <code>MUTILS_STATIC_LIB</code><em>must</em> be added to your project's "Preprocessor Definitions".</li>
</ul>
<h1>License</h1>
<p>This library is free software. It is released under the terms of the <ahref="https://www.gnu.org/licenses/lgpl-2.1.html"><em>GNU Lesser General Public License (LGPL), Version 2.1</em></a>. </p><preclass="fragment">MUtilities - MuldeR's Utilities for Qt
Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
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.
</pre><h1>Acknowledgement</h1>
<p>The following third-party code is used in the MUtilities library:</p>
<ul>
<li><b>Keccak/SHA-3 Reference Implementation</b> Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer No Copyright / Dedicated to the Public Domain</li>
<li><b>Natural Order String Comparison</b> Copyright (C) 2000, 2004 by Martin Pool <ahref="#"onclick="location.href='mai'+'lto:'+'mbp'+'@s'+'our'+'ce'+'fro'+'g.'+'net'; return false;">mbp@s<spanstyle="display: none;">.nosp@m.</span>ourc<spanstyle="display: none;">.nosp@m.</span>efrog<spanstyle="display: none;">.nosp@m.</span>.net</a> Released under the zlib License</li>
<li><b>Adler-32 Checksum Algorithm (from zlib)</b> Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler Released under the zlib License </li>