OSDN Git Service

Some documentation updates.
[mutilities/MUtilities.git] / docs / d5 / d3b / _global_8h.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.12"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>MuldeR&#39;s Utilities for Qt: include/MUtils/Global.h File Reference</title>
9 <link href="../../tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="../../jquery.js"></script>
11 <script type="text/javascript" src="../../dynsections.js"></script>
12 <link href="../../search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="../../search/searchdata.js"></script>
14 <script type="text/javascript" src="../../search/search.js"></script>
15 <link href="../../doxygen.css" rel="stylesheet" type="text/css" />
16 </head>
17 <body>
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19 <div id="titlearea">
20 <table cellspacing="0" cellpadding="0">
21  <tbody>
22  <tr style="height: 56px;">
23   <td id="projectalign" style="padding-left: 0.5em;">
24    <div id="projectname">MuldeR&#39;s Utilities for Qt
25    </div>
26    <div id="projectbrief">MUtilities</div>
27   </td>
28  </tr>
29  </tbody>
30 </table>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.12 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
36 </script>
37 <script type="text/javascript" src="../../menudata.js"></script>
38 <script type="text/javascript" src="../../menu.js"></script>
39 <script type="text/javascript">
40 $(function() {
41   initMenu('../../',true,false,'search.php','Search');
42   $(document).ready(function() { init_search(); });
43 });
44 </script>
45 <div id="main-nav"></div>
46 <!-- window showing the filter options -->
47 <div id="MSearchSelectWindow"
48      onmouseover="return searchBox.OnSearchSelectShow()"
49      onmouseout="return searchBox.OnSearchSelectHide()"
50      onkeydown="return searchBox.OnSearchSelectKey(event)">
51 </div>
52
53 <!-- iframe showing the search results (closed by default) -->
54 <div id="MSearchResultsWindow">
55 <iframe src="javascript:void(0)" frameborder="0" 
56         name="MSearchResults" id="MSearchResults">
57 </iframe>
58 </div>
59
60 <div id="nav-path" class="navpath">
61   <ul>
62 <li class="navelem"><a class="el" href="../../dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="../../dir_b076b53667bc06ebb413a190e197fc7b.html">MUtils</a></li>  </ul>
63 </div>
64 </div><!-- top -->
65 <div class="header">
66   <div class="summary">
67 <a href="#define-members">Macros</a> &#124;
68 <a href="#func-members">Functions</a>  </div>
69   <div class="headertitle">
70 <div class="title">Global.h File Reference</div>  </div>
71 </div><!--header-->
72 <div class="contents">
73
74 <p>This file contains miscellaneous functions that are generally useful for Qt-based applications.  
75 <a href="#details">More...</a></p>
76 <div class="textblock"><code>#include &lt;QString&gt;</code><br />
77 </div>
78 <p><a href="../../d5/d3b/_global_8h_source.html">Go to the source code of this file.</a></p>
79 <table class="memberdecls">
80 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
81 Macros</h2></td></tr>
82 <tr class="memitem:a761530893b34e2d324f22ddf7bc31455"><td class="memItemLeft" align="right" valign="top"><a id="a761530893b34e2d324f22ddf7bc31455"></a>
83 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_API</b></td></tr>
84 <tr class="separator:a761530893b34e2d324f22ddf7bc31455"><td class="memSeparator" colspan="2">&#160;</td></tr>
85 <tr class="memitem:ad5b14e1c1267ed90263a45bf6d4289ca"><td class="memItemLeft" align="right" valign="top"><a id="ad5b14e1c1267ed90263a45bf6d4289ca"></a>
86 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_MAKE_STRING_HELPER</b>(X)&#160;&#160;&#160;#X</td></tr>
87 <tr class="separator:ad5b14e1c1267ed90263a45bf6d4289ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:af2c5f52bf983b10e2078b03ce36efb22"><td class="memItemLeft" align="right" valign="top"><a id="af2c5f52bf983b10e2078b03ce36efb22"></a>
89 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_MAKE_STRING</b>(X)&#160;&#160;&#160;MUTILS_MAKE_STRING_HELPER(X)</td></tr>
90 <tr class="separator:af2c5f52bf983b10e2078b03ce36efb22"><td class="memSeparator" colspan="2">&#160;</td></tr>
91 <tr class="memitem:a2b88ab398bf3616fb6826c806f435ddc"><td class="memItemLeft" align="right" valign="top"><a id="a2b88ab398bf3616fb6826c806f435ddc"></a>
92 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_COMPILER_WARNING</b>(TXT)&#160;&#160;&#160;__pragma(message(__FILE__ &quot;(&quot; MUTILS_MAKE_STRING(__LINE__) &quot;) : warning: &quot; TXT))</td></tr>
93 <tr class="separator:a2b88ab398bf3616fb6826c806f435ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 <tr class="memitem:a249516197568fbf9bbf980554b4d6d95"><td class="memItemLeft" align="right" valign="top"><a id="a249516197568fbf9bbf980554b4d6d95"></a>
95 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_DEBUG</b>&#160;&#160;&#160;(1)</td></tr>
96 <tr class="separator:a249516197568fbf9bbf980554b4d6d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 <tr class="memitem:ad42b1946a83df3bd76734d5ab691fd0d"><td class="memItemLeft" align="right" valign="top"><a id="ad42b1946a83df3bd76734d5ab691fd0d"></a>
98 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_DELETE</b>(PTR)&#160;&#160;&#160;do { if((PTR)) { delete (PTR); (PTR) = NULL; } } while(0)</td></tr>
99 <tr class="separator:ad42b1946a83df3bd76734d5ab691fd0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
100 <tr class="memitem:aa544a37b80f1ab9d86f439a7666e9aa8"><td class="memItemLeft" align="right" valign="top"><a id="aa544a37b80f1ab9d86f439a7666e9aa8"></a>
101 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_DELETE_ARRAY</b>(PTR)&#160;&#160;&#160;do { if((PTR)) { delete [] (PTR); (PTR) = NULL; } } while(0)</td></tr>
102 <tr class="separator:aa544a37b80f1ab9d86f439a7666e9aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
103 <tr class="memitem:a1fe39de37351efa3ca46bdc8653e1f25"><td class="memItemLeft" align="right" valign="top"><a id="a1fe39de37351efa3ca46bdc8653e1f25"></a>
104 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_ZERO_MEMORY</b>(PTR)&#160;&#160;&#160;memset(&amp;(PTR), 0, sizeof((PTR)))</td></tr>
105 <tr class="separator:a1fe39de37351efa3ca46bdc8653e1f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
106 <tr class="memitem:af55d43b39d3f41cf090c138ed190ee6e"><td class="memItemLeft" align="right" valign="top"><a id="af55d43b39d3f41cf090c138ed190ee6e"></a>
107 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_WCHR</b>(STR)&#160;&#160;&#160;(reinterpret_cast&lt;const wchar_t*&gt;((STR).utf16()))</td></tr>
108 <tr class="separator:af55d43b39d3f41cf090c138ed190ee6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
109 <tr class="memitem:a88b0902153ea537b12d86267af20eb3f"><td class="memItemLeft" align="right" valign="top"><a id="a88b0902153ea537b12d86267af20eb3f"></a>
110 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_UTF8</b>(STR)&#160;&#160;&#160;((STR).toUtf8().constData())</td></tr>
111 <tr class="separator:a88b0902153ea537b12d86267af20eb3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
112 <tr class="memitem:a04d63f6f60c90f8e3c4029824a7352b0"><td class="memItemLeft" align="right" valign="top"><a id="a04d63f6f60c90f8e3c4029824a7352b0"></a>
113 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_QSTR</b>(STR)&#160;&#160;&#160;(QString::fromUtf16(reinterpret_cast&lt;const unsigned short*&gt;((STR))))</td></tr>
114 <tr class="separator:a04d63f6f60c90f8e3c4029824a7352b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
115 <tr class="memitem:a177ecbfe7701c2ac04bb8bdeb208773a"><td class="memItemLeft" align="right" valign="top"><a id="a177ecbfe7701c2ac04bb8bdeb208773a"></a>
116 #define&#160;</td><td class="memItemRight" valign="bottom"><b>MUTILS_BOOL2STR</b>(X)&#160;&#160;&#160;((X) ? &quot;1&quot; : &quot;0&quot;)</td></tr>
117 <tr class="separator:a177ecbfe7701c2ac04bb8bdeb208773a"><td class="memSeparator" colspan="2">&#160;</td></tr>
118 </table><table class="memberdecls">
119 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
120 Functions</h2></td></tr>
121 <tr class="memitem:a9ddb9a2039585b1ef3429db16ea84292"><td class="memItemLeft" align="right" valign="top">const QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292">MUtils::temp_folder</a> (void)</td></tr>
122 <tr class="memdesc:a9ddb9a2039585b1ef3429db16ea84292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rerieves the full path of the application's <em>Temp</em> folder.  <a href="../../d5/d3b/_global_8h.html#a9ddb9a2039585b1ef3429db16ea84292">More...</a><br /></td></tr>
123 <tr class="separator:a9ddb9a2039585b1ef3429db16ea84292"><td class="memSeparator" colspan="2">&#160;</td></tr>
124 <tr class="memitem:a5a94d9552ee93a19722fdb411e580340"><td class="memItemLeft" align="right" valign="top"><a id="a5a94d9552ee93a19722fdb411e580340"></a>
125 void&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::init_process</b> (QProcess &amp;process, const QString &amp;wokringDir, const bool bReplaceTempDir=true, const QStringList *const extraPaths=NULL)</td></tr>
126 <tr class="separator:a5a94d9552ee93a19722fdb411e580340"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 <tr class="memitem:a4dc7dccb81653ae28e0d37a7c2f62112"><td class="memItemLeft" align="right" valign="top">quint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112">MUtils::next_rand_u32</a> (void)</td></tr>
128 <tr class="memdesc:a4dc7dccb81653ae28e0d37a7c2f62112"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 32-Bit value.  <a href="../../d5/d3b/_global_8h.html#a4dc7dccb81653ae28e0d37a7c2f62112">More...</a><br /></td></tr>
129 <tr class="separator:a4dc7dccb81653ae28e0d37a7c2f62112"><td class="memSeparator" colspan="2">&#160;</td></tr>
130 <tr class="memitem:a15762bf5b0239e5f67a3815d63ed441a"><td class="memItemLeft" align="right" valign="top">quint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a">MUtils::next_rand_u64</a> (void)</td></tr>
131 <tr class="memdesc:a15762bf5b0239e5f67a3815d63ed441a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> unsigned 64-Bit value.  <a href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a">More...</a><br /></td></tr>
132 <tr class="separator:a15762bf5b0239e5f67a3815d63ed441a"><td class="memSeparator" colspan="2">&#160;</td></tr>
133 <tr class="memitem:a996b60884ddf7728178e94f34ca12570"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570">MUtils::next_rand_str</a> (const bool &amp;bLong=false)</td></tr>
134 <tr class="memdesc:a996b60884ddf7728178e94f34ca12570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a <em>random</em> string.  <a href="../../d5/d3b/_global_8h.html#a996b60884ddf7728178e94f34ca12570">More...</a><br /></td></tr>
135 <tr class="separator:a996b60884ddf7728178e94f34ca12570"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 <tr class="memitem:a67cb16c62b213da5135a6fa076f3f005"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005">MUtils::make_temp_file</a> (const QString &amp;basePath, const QString &amp;extension, const bool placeholder=false)</td></tr>
137 <tr class="memdesc:a67cb16c62b213da5135a6fa076f3f005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a temporary file name.  <a href="../../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005">More...</a><br /></td></tr>
138 <tr class="separator:a67cb16c62b213da5135a6fa076f3f005"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 <tr class="memitem:a390e56e35eb9329d2e67fa9741d07536"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536">MUtils::make_unique_file</a> (const QString &amp;basePath, const QString &amp;baseName, const QString &amp;extension, const bool fancy=false)</td></tr>
140 <tr class="memdesc:a390e56e35eb9329d2e67fa9741d07536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a unique file name.  <a href="../../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536">More...</a><br /></td></tr>
141 <tr class="separator:a390e56e35eb9329d2e67fa9741d07536"><td class="memSeparator" colspan="2">&#160;</td></tr>
142 <tr class="memitem:ad1bdb5e416839b1f85f6df68e58ae28c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c">MUtils::parity</a> (quint32 value)</td></tr>
143 <tr class="memdesc:ad1bdb5e416839b1f85f6df68e58ae28c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <em>parity</em> of the given unsigned 32-Bit value.  <a href="../../d5/d3b/_global_8h.html#ad1bdb5e416839b1f85f6df68e58ae28c">More...</a><br /></td></tr>
144 <tr class="separator:ad1bdb5e416839b1f85f6df68e58ae28c"><td class="memSeparator" colspan="2">&#160;</td></tr>
145 <tr class="memitem:a12259acdd6aff74ee83819d3aebd8ba9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9">MUtils::remove_file</a> (const QString &amp;fileName)</td></tr>
146 <tr class="memdesc:a12259acdd6aff74ee83819d3aebd8ba9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified file.  <a href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9">More...</a><br /></td></tr>
147 <tr class="separator:a12259acdd6aff74ee83819d3aebd8ba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
148 <tr class="memitem:ac7d2c9bd5c49230b2fed72e3410c3f7d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d">MUtils::remove_directory</a> (const QString &amp;folderPath, const bool &amp;recursive)</td></tr>
149 <tr class="memdesc:ac7d2c9bd5c49230b2fed72e3410c3f7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively deletes the specified directory.  <a href="../../d5/d3b/_global_8h.html#ac7d2c9bd5c49230b2fed72e3410c3f7d">More...</a><br /></td></tr>
150 <tr class="separator:ac7d2c9bd5c49230b2fed72e3410c3f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
151 <tr class="memitem:a9290a3fe637a05ad2a7515f36fad79bd"><td class="memItemLeft" align="right" valign="top">QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">MUtils::trim_right</a> (QString &amp;str)</td></tr>
152 <tr class="memdesc:a9290a3fe637a05ad2a7515f36fad79bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#a9290a3fe637a05ad2a7515f36fad79bd">More...</a><br /></td></tr>
153 <tr class="separator:a9290a3fe637a05ad2a7515f36fad79bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
154 <tr class="memitem:af089c8a40b6ec2e19db3fe612aa81c8c"><td class="memItemLeft" align="right" valign="top">QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">MUtils::trim_left</a> (QString &amp;str)</td></tr>
155 <tr class="memdesc:af089c8a40b6ec2e19db3fe612aa81c8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>leading</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#af089c8a40b6ec2e19db3fe612aa81c8c">More...</a><br /></td></tr>
156 <tr class="separator:af089c8a40b6ec2e19db3fe612aa81c8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
157 <tr class="memitem:a3eb47d6ca49b2700622e3fe99faf14d8"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a3eb47d6ca49b2700622e3fe99faf14d8">MUtils::trim_right</a> (const QString &amp;str)</td></tr>
158 <tr class="memdesc:a3eb47d6ca49b2700622e3fe99faf14d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#a3eb47d6ca49b2700622e3fe99faf14d8">More...</a><br /></td></tr>
159 <tr class="separator:a3eb47d6ca49b2700622e3fe99faf14d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
160 <tr class="memitem:a8680aeaeb1118353bd099e26ba7d6123"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a8680aeaeb1118353bd099e26ba7d6123">MUtils::trim_left</a> (const QString &amp;str)</td></tr>
161 <tr class="memdesc:a8680aeaeb1118353bd099e26ba7d6123"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove <em>trailing</em> white-space characters.  <a href="../../d5/d3b/_global_8h.html#a8680aeaeb1118353bd099e26ba7d6123">More...</a><br /></td></tr>
162 <tr class="separator:a8680aeaeb1118353bd099e26ba7d6123"><td class="memSeparator" colspan="2">&#160;</td></tr>
163 <tr class="memitem:a09e919d419ded903481cf7aba702dcba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba">MUtils::natural_string_sort</a> (QStringList &amp;list, const bool bIgnoreCase)</td></tr>
164 <tr class="memdesc:a09e919d419ded903481cf7aba702dcba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort a list of strings using "natural ordering" algorithm.  <a href="../../d5/d3b/_global_8h.html#a09e919d419ded903481cf7aba702dcba">More...</a><br /></td></tr>
165 <tr class="separator:a09e919d419ded903481cf7aba702dcba"><td class="memSeparator" colspan="2">&#160;</td></tr>
166 <tr class="memitem:a895e14458df7226110ae70029c1729a9"><td class="memItemLeft" align="right" valign="top"><a id="a895e14458df7226110ae70029c1729a9"></a>
167 QString&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file_name</b> (const QString &amp;name)</td></tr>
168 <tr class="separator:a895e14458df7226110ae70029c1729a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
169 <tr class="memitem:ac0949226be088ce65a60d5aa4194e1c0"><td class="memItemLeft" align="right" valign="top"><a id="ac0949226be088ce65a60d5aa4194e1c0"></a>
170 QString&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file_path</b> (const QString &amp;path)</td></tr>
171 <tr class="separator:ac0949226be088ce65a60d5aa4194e1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
172 <tr class="memitem:a45cb0d1e6a55cf5ffda3b626c25fd957"><td class="memItemLeft" align="right" valign="top"><a id="a45cb0d1e6a55cf5ffda3b626c25fd957"></a>
173 bool&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::regexp_parse_uint32</b> (const QRegExp &amp;regexp, quint32 &amp;value)</td></tr>
174 <tr class="separator:a45cb0d1e6a55cf5ffda3b626c25fd957"><td class="memSeparator" colspan="2">&#160;</td></tr>
175 <tr class="memitem:a367969a260da994876d19c9f7ee40606"><td class="memItemLeft" align="right" valign="top"><a id="a367969a260da994876d19c9f7ee40606"></a>
176 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>
177 <tr class="separator:a367969a260da994876d19c9f7ee40606"><td class="memSeparator" colspan="2">&#160;</td></tr>
178 <tr class="memitem:a4fcbdafffc1224776616fcc6aec8278b"><td class="memItemLeft" align="right" valign="top"><a id="a4fcbdafffc1224776616fcc6aec8278b"></a>
179 QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::available_codepages</b> (const bool &amp;noAliases=true)</td></tr>
180 <tr class="separator:a4fcbdafffc1224776616fcc6aec8278b"><td class="memSeparator" colspan="2">&#160;</td></tr>
181 <tr class="memitem:a00af0daa1ae56f474746443002be6786"><td class="memItemLeft" align="right" valign="top"><a id="a00af0daa1ae56f474746443002be6786"></a>
182 int&#160;</td><td class="memItemRight" valign="bottom"><b>MUtils::Internal::selfTest</b> (const char *const buildKey, const bool debug)</td></tr>
183 <tr class="separator:a00af0daa1ae56f474746443002be6786"><td class="memSeparator" colspan="2">&#160;</td></tr>
184 </table>
185 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
186 <div class="textblock"><p>This file contains miscellaneous functions that are generally useful for Qt-based applications. </p>
187 </div><h2 class="groupheader">Function Documentation</h2>
188 <a id="file_a67cb16c62b213da5135a6fa076f3f005"></a>
189 <h2 class="memtitle"><span class="permalink"><a href="#file_a67cb16c62b213da5135a6fa076f3f005">&sect;&nbsp;</a></span>make_temp_file()</h2>
190
191 <div class="memitem">
192 <div class="memproto">
193       <table class="memname">
194         <tr>
195           <td class="memname">QString MUtils::make_temp_file </td>
196           <td>(</td>
197           <td class="paramtype">const QString &amp;&#160;</td>
198           <td class="paramname"><em>basePath</em>, </td>
199         </tr>
200         <tr>
201           <td class="paramkey"></td>
202           <td></td>
203           <td class="paramtype">const QString &amp;&#160;</td>
204           <td class="paramname"><em>extension</em>, </td>
205         </tr>
206         <tr>
207           <td class="paramkey"></td>
208           <td></td>
209           <td class="paramtype">const bool&#160;</td>
210           <td class="paramname"><em>placeholder</em> = <code>false</code>&#160;</td>
211         </tr>
212         <tr>
213           <td></td>
214           <td>)</td>
215           <td></td><td></td>
216         </tr>
217       </table>
218 </div><div class="memdoc">
219
220 <p>Generates a temporary file name. </p>
221 <p>The function generates a file name that contains a <em>random</em> component and that is guaranteed to <b>not</b> exist yet. The generated file name follows a <code>"&lt;basedir&gt;/&lt;random&gt;.&lt;ext&gt;"</code> pattern. This is useful (not only) for creating temporary files.</p>
222 <dl class="params"><dt>Parameters</dt><dd>
223   <table class="params">
224     <tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the temporary file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
225     <tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the temporary file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
226     <tr><td class="paramname">placeholder</td><td>If set to <code>true</code>, the function creates an empty "placeholder" file under the returned file name; if set to <code>false</code>, it does <em>not</em>.</td></tr>
227   </table>
228   </dd>
229 </dl>
230 <dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QString holding the full path of the temporary file; otherwise it returns a default-constructed QString. </dd></dl>
231
232 </div>
233 </div>
234 <a id="file_a390e56e35eb9329d2e67fa9741d07536"></a>
235 <h2 class="memtitle"><span class="permalink"><a href="#file_a390e56e35eb9329d2e67fa9741d07536">&sect;&nbsp;</a></span>make_unique_file()</h2>
236
237 <div class="memitem">
238 <div class="memproto">
239       <table class="memname">
240         <tr>
241           <td class="memname">QString MUtils::make_unique_file </td>
242           <td>(</td>
243           <td class="paramtype">const QString &amp;&#160;</td>
244           <td class="paramname"><em>basePath</em>, </td>
245         </tr>
246         <tr>
247           <td class="paramkey"></td>
248           <td></td>
249           <td class="paramtype">const QString &amp;&#160;</td>
250           <td class="paramname"><em>baseName</em>, </td>
251         </tr>
252         <tr>
253           <td class="paramkey"></td>
254           <td></td>
255           <td class="paramtype">const QString &amp;&#160;</td>
256           <td class="paramname"><em>extension</em>, </td>
257         </tr>
258         <tr>
259           <td class="paramkey"></td>
260           <td></td>
261           <td class="paramtype">const bool&#160;</td>
262           <td class="paramname"><em>fancy</em> = <code>false</code>&#160;</td>
263         </tr>
264         <tr>
265           <td></td>
266           <td>)</td>
267           <td></td><td></td>
268         </tr>
269       </table>
270 </div><div class="memdoc">
271
272 <p>Generates a unique file name. </p>
273 <p>The function generates a unique file name in the specified directory. The function guarantees that the returned file name does <em>not</em> exist yet. If necessary, a <em>counter</em> will be included in the file name in order to ensure its uniqueness.</p>
274 <dl class="params"><dt>Parameters</dt><dd>
275   <table class="params">
276     <tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the unique file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
277     <tr><td class="paramname">baseName</td><td>Specifies the desired "base" file name of the unqiue file. Do <b>not</b> include a file extension.</td></tr>
278     <tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the unqiue file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
279     <tr><td class="paramname">fancy</td><td>If set to <code>true</code>, the file name is generated according to the <code>"&lt;basedir&gt;/&lt;basename&gt; (N).&lt;ext&gt;"</code> pattern; if set to <code>false</code>, the file name is generated according to the <code>"&lt;basedir&gt;/&lt;basename&gt;.XXXX.&lt;ext&gt;"</code> pattern.</td></tr>
280   </table>
281   </dd>
282 </dl>
283 <dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a QString holding the full path of the unique file; otherwise it returns a default-constructed QString. </dd></dl>
284
285 </div>
286 </div>
287 <a id="file_a09e919d419ded903481cf7aba702dcba"></a>
288 <h2 class="memtitle"><span class="permalink"><a href="#file_a09e919d419ded903481cf7aba702dcba">&sect;&nbsp;</a></span>natural_string_sort()</h2>
289
290 <div class="memitem">
291 <div class="memproto">
292       <table class="memname">
293         <tr>
294           <td class="memname">void MUtils::natural_string_sort </td>
295           <td>(</td>
296           <td class="paramtype">QStringList &amp;&#160;</td>
297           <td class="paramname"><em>list</em>, </td>
298         </tr>
299         <tr>
300           <td class="paramkey"></td>
301           <td></td>
302           <td class="paramtype">const bool&#160;</td>
303           <td class="paramname"><em>bIgnoreCase</em>&#160;</td>
304         </tr>
305         <tr>
306           <td></td>
307           <td>)</td>
308           <td></td><td></td>
309         </tr>
310       </table>
311 </div><div class="memdoc">
312
313 <p>Sort a list of strings using "natural ordering" algorithm. </p>
314 <p>This function implements a sort algorithm that orders alphanumeric strings in the way a human being would. See <a href="http://sourcefrog.net/projects/natsort/"><em>Natural Order String Comparison</em></a> for details!</p>
315 <dl class="params"><dt>Parameters</dt><dd>
316   <table class="params">
317     <tr><td class="paramname">list</td><td>A reference to the QStringList object to be sorted. The list will be sorted "in place". </td></tr>
318   </table>
319   </dd>
320 </dl>
321
322 </div>
323 </div>
324 <a id="file_a996b60884ddf7728178e94f34ca12570"></a>
325 <h2 class="memtitle"><span class="permalink"><a href="#file_a996b60884ddf7728178e94f34ca12570">&sect;&nbsp;</a></span>next_rand_str()</h2>
326
327 <div class="memitem">
328 <div class="memproto">
329       <table class="memname">
330         <tr>
331           <td class="memname">QString MUtils::next_rand_str </td>
332           <td>(</td>
333           <td class="paramtype">const bool &amp;&#160;</td>
334           <td class="paramname"><em>bLong</em> = <code>false</code></td><td>)</td>
335           <td></td>
336         </tr>
337       </table>
338 </div><div class="memdoc">
339
340 <p>Generates a <em>random</em> string. </p>
341 <p>The random string is generated using the same PRNG as the <code><a class="el" href="../../d5/d3b/_global_8h.html#a15762bf5b0239e5f67a3815d63ed441a" title="Generates a random unsigned 64-Bit value. ">next_rand_u64()</a></code> function. The <em>random</em> bytes are converted to a hexadecimal string and, if necessary, zero-padded to a toal length of 16 or 32 characters. There is <b>no</b> <code>0x</code>-prefix included in the result.</p>
342 <dl class="params"><dt>Parameters</dt><dd>
343   <table class="params">
344     <tr><td class="paramname">bLong</td><td>If set to <code>true</code>, a "long" random string (32 characters) will be generated; if set to <code>false</code>, a "short" random string (16 characters) is generated.</td></tr>
345   </table>
346   </dd>
347 </dl>
348 <dl class="section return"><dt>Returns</dt><dd>The function retruns a QString holding a <em>random</em> hexadecimal string </dd></dl>
349
350 </div>
351 </div>
352 <a id="file_a4dc7dccb81653ae28e0d37a7c2f62112"></a>
353 <h2 class="memtitle"><span class="permalink"><a href="#file_a4dc7dccb81653ae28e0d37a7c2f62112">&sect;&nbsp;</a></span>next_rand_u32()</h2>
354
355 <div class="memitem">
356 <div class="memproto">
357       <table class="memname">
358         <tr>
359           <td class="memname">quint32 MUtils::next_rand_u32 </td>
360           <td>(</td>
361           <td class="paramtype">void&#160;</td>
362           <td class="paramname"></td><td>)</td>
363           <td></td>
364         </tr>
365       </table>
366 </div><div class="memdoc">
367
368 <p>Generates a <em>random</em> unsigned 32-Bit value. </p>
369 <p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
370 <dl class="section return"><dt>Returns</dt><dd>The function retruns a <em>random</em> unsigned 32-Bit value. </dd></dl>
371
372 </div>
373 </div>
374 <a id="file_a15762bf5b0239e5f67a3815d63ed441a"></a>
375 <h2 class="memtitle"><span class="permalink"><a href="#file_a15762bf5b0239e5f67a3815d63ed441a">&sect;&nbsp;</a></span>next_rand_u64()</h2>
376
377 <div class="memitem">
378 <div class="memproto">
379       <table class="memname">
380         <tr>
381           <td class="memname">quint64 MUtils::next_rand_u64 </td>
382           <td>(</td>
383           <td class="paramtype">void&#160;</td>
384           <td class="paramname"></td><td>)</td>
385           <td></td>
386         </tr>
387       </table>
388 </div><div class="memdoc">
389
390 <p>Generates a <em>random</em> unsigned 64-Bit value. </p>
391 <p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
392 <dl class="section return"><dt>Returns</dt><dd>The function retruns a <em>random</em> unsigned 64-Bit value. </dd></dl>
393
394 </div>
395 </div>
396 <a id="file_ad1bdb5e416839b1f85f6df68e58ae28c"></a>
397 <h2 class="memtitle"><span class="permalink"><a href="#file_ad1bdb5e416839b1f85f6df68e58ae28c">&sect;&nbsp;</a></span>parity()</h2>
398
399 <div class="memitem">
400 <div class="memproto">
401       <table class="memname">
402         <tr>
403           <td class="memname">bool MUtils::parity </td>
404           <td>(</td>
405           <td class="paramtype">quint32&#160;</td>
406           <td class="paramname"><em>value</em></td><td>)</td>
407           <td></td>
408         </tr>
409       </table>
410 </div><div class="memdoc">
411
412 <p>Computes the <em>parity</em> of the given unsigned 32-Bit value. </p>
413 <dl class="params"><dt>Parameters</dt><dd>
414   <table class="params">
415     <tr><td class="paramname">value</td><td>The 32-Bit unsigned value from which the parity is to be computed.</td></tr>
416   </table>
417   </dd>
418 </dl>
419 <dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the number of <b>1</b> bits in the given value is <em>odd</em>; it returns <code>false</code>, if the number of <b>1</b> bits in the given value is <em>even</em>. </dd></dl>
420
421 </div>
422 </div>
423 <a id="file_ac7d2c9bd5c49230b2fed72e3410c3f7d"></a>
424 <h2 class="memtitle"><span class="permalink"><a href="#file_ac7d2c9bd5c49230b2fed72e3410c3f7d">&sect;&nbsp;</a></span>remove_directory()</h2>
425
426 <div class="memitem">
427 <div class="memproto">
428       <table class="memname">
429         <tr>
430           <td class="memname">bool MUtils::remove_directory </td>
431           <td>(</td>
432           <td class="paramtype">const QString &amp;&#160;</td>
433           <td class="paramname"><em>folderPath</em>, </td>
434         </tr>
435         <tr>
436           <td class="paramkey"></td>
437           <td></td>
438           <td class="paramtype">const bool &amp;&#160;</td>
439           <td class="paramname"><em>recursive</em>&#160;</td>
440         </tr>
441         <tr>
442           <td></td>
443           <td>)</td>
444           <td></td><td></td>
445         </tr>
446       </table>
447 </div><div class="memdoc">
448
449 <p>Recursively deletes the specified directory. </p>
450 <p>The function deletes the specified directory. In <em>recusive</em> mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the <code><a class="el" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9" title="Deletes the specified file. ">remove_file()</a></code> function.</p>
451 <dl class="params"><dt>Parameters</dt><dd>
452   <table class="params">
453     <tr><td class="paramname">folderPath</td><td>The path to the directory to be deleted. This should be a full path.</td></tr>
454     <tr><td class="paramname">recursive</td><td>If set to <code>true</code> the function removes all files and sub-directories in the specified directory; if set to <code>false</code>, the function will <em>not</em> try to delete any files or sub-directories, which means that it will fail on non-empty directories.</td></tr>
455   </table>
456   </dd>
457 </dl>
458 <dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the directory was deleted successfully or if the directory doesn't exist; it returns <code>false</code>, if the directory could <em>not</em> be deleted. </dd></dl>
459
460 </div>
461 </div>
462 <a id="file_a12259acdd6aff74ee83819d3aebd8ba9"></a>
463 <h2 class="memtitle"><span class="permalink"><a href="#file_a12259acdd6aff74ee83819d3aebd8ba9">&sect;&nbsp;</a></span>remove_file()</h2>
464
465 <div class="memitem">
466 <div class="memproto">
467       <table class="memname">
468         <tr>
469           <td class="memname">bool MUtils::remove_file </td>
470           <td>(</td>
471           <td class="paramtype">const QString &amp;&#160;</td>
472           <td class="paramname"><em>fileName</em></td><td>)</td>
473           <td></td>
474         </tr>
475       </table>
476 </div><div class="memdoc">
477
478 <p>Deletes the specified file. </p>
479 <p>The function deletes the specified file, even if it has the "read only" flag set. If the file is currently locked (e.g. by another process), the function retries multiple times to delete the file before it fails.</p>
480 <dl class="params"><dt>Parameters</dt><dd>
481   <table class="params">
482     <tr><td class="paramname">fileName</td><td>The path to the file to be deleted. This should be a full path.</td></tr>
483   </table>
484   </dd>
485 </dl>
486 <dl class="section return"><dt>Returns</dt><dd>The function returns <code>true</code>, if the file was deleted successfully or if the file doesn't exist; it returns <code>false</code>, if the file could <em>not</em> be deleted. </dd></dl>
487
488 </div>
489 </div>
490 <a id="file_a9ddb9a2039585b1ef3429db16ea84292"></a>
491 <h2 class="memtitle"><span class="permalink"><a href="#file_a9ddb9a2039585b1ef3429db16ea84292">&sect;&nbsp;</a></span>temp_folder()</h2>
492
493 <div class="memitem">
494 <div class="memproto">
495       <table class="memname">
496         <tr>
497           <td class="memname">const QString&amp; MUtils::temp_folder </td>
498           <td>(</td>
499           <td class="paramtype">void&#160;</td>
500           <td class="paramname"></td><td>)</td>
501           <td></td>
502         </tr>
503       </table>
504 </div><div class="memdoc">
505
506 <p>Rerieves the full path of the application's <em>Temp</em> folder. </p>
507 <p>The application's <em>Temp</em> folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's <em>Temp</em> folder will be created as a sub-folder of the system's global <em>Temp</em> folder, as indicated by the <code>TMP</code> or <code>TEMP</code> environment variables. However, it may be created at a different place (e.g. in the users <em>Profile</em> directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's <em>Temp</em> folder exists for the whole lifetime of the application and that it is writable. When the application is about to terminate, the application's <em>Temp</em> folder and all files or sub-directories thereof will be <em>removed</em> automatically!</p>
508 <dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's <em>Temp</em> folder; otherwise a read-only reference to a default-constructed QString is returned. </dd></dl>
509
510 </div>
511 </div>
512 <a id="file_af089c8a40b6ec2e19db3fe612aa81c8c"></a>
513 <h2 class="memtitle"><span class="permalink"><a href="#file_af089c8a40b6ec2e19db3fe612aa81c8c">&sect;&nbsp;</a></span>trim_left() <span class="overload">[1/2]</span></h2>
514
515 <div class="memitem">
516 <div class="memproto">
517       <table class="memname">
518         <tr>
519           <td class="memname">QString&amp; MUtils::trim_left </td>
520           <td>(</td>
521           <td class="paramtype">QString &amp;&#160;</td>
522           <td class="paramname"><em>str</em></td><td>)</td>
523           <td></td>
524         </tr>
525       </table>
526 </div><div class="memdoc">
527
528 <p>Remove <em>leading</em> white-space characters. </p>
529 <p>The function removes all <em>leading</em> white-space characters from the specified string. Trailing white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
530 <dl class="params"><dt>Parameters</dt><dd>
531   <table class="params">
532     <tr><td class="paramname">str</td><td>A reference to the QString object to be trimmed. This QString object will be modified directly.</td></tr>
533   </table>
534   </dd>
535 </dl>
536 <dl class="section return"><dt>Returns</dt><dd>A reference to the trimmed QString object. This is the same QString object that was specified in the <code>str</code> parameter. </dd></dl>
537
538 </div>
539 </div>
540 <a id="file_a8680aeaeb1118353bd099e26ba7d6123"></a>
541 <h2 class="memtitle"><span class="permalink"><a href="#file_a8680aeaeb1118353bd099e26ba7d6123">&sect;&nbsp;</a></span>trim_left() <span class="overload">[2/2]</span></h2>
542
543 <div class="memitem">
544 <div class="memproto">
545       <table class="memname">
546         <tr>
547           <td class="memname">QString MUtils::trim_left </td>
548           <td>(</td>
549           <td class="paramtype">const QString &amp;&#160;</td>
550           <td class="paramname"><em>str</em></td><td>)</td>
551           <td></td>
552         </tr>
553       </table>
554 </div><div class="memdoc">
555
556 <p>Remove <em>trailing</em> white-space characters. </p>
557 <p>The function removes all <em>leading</em> white-space characters from the specified string. Trailing white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
558 <dl class="params"><dt>Parameters</dt><dd>
559   <table class="params">
560     <tr><td class="paramname">str</td><td>A read-only reference to the QString object to be trimmed. The original QString object is <em>not</em> modified.</td></tr>
561   </table>
562   </dd>
563 </dl>
564 <dl class="section return"><dt>Returns</dt><dd>A new QString object that equals the original QString object, except that it has all <em>leading</em> white-space characters removed. </dd></dl>
565
566 </div>
567 </div>
568 <a id="file_a9290a3fe637a05ad2a7515f36fad79bd"></a>
569 <h2 class="memtitle"><span class="permalink"><a href="#file_a9290a3fe637a05ad2a7515f36fad79bd">&sect;&nbsp;</a></span>trim_right() <span class="overload">[1/2]</span></h2>
570
571 <div class="memitem">
572 <div class="memproto">
573       <table class="memname">
574         <tr>
575           <td class="memname">QString&amp; MUtils::trim_right </td>
576           <td>(</td>
577           <td class="paramtype">QString &amp;&#160;</td>
578           <td class="paramname"><em>str</em></td><td>)</td>
579           <td></td>
580         </tr>
581       </table>
582 </div><div class="memdoc">
583
584 <p>Remove <em>trailing</em> white-space characters. </p>
585 <p>The function removes all <em>trailing</em> white-space characters from the specified string. Leading white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
586 <dl class="params"><dt>Parameters</dt><dd>
587   <table class="params">
588     <tr><td class="paramname">str</td><td>A reference to the QString object to be trimmed. This QString object will be modified directly.</td></tr>
589   </table>
590   </dd>
591 </dl>
592 <dl class="section return"><dt>Returns</dt><dd>A reference to the trimmed QString object. This is the same QString object that was specified in the <code>str</code> parameter. </dd></dl>
593
594 </div>
595 </div>
596 <a id="file_a3eb47d6ca49b2700622e3fe99faf14d8"></a>
597 <h2 class="memtitle"><span class="permalink"><a href="#file_a3eb47d6ca49b2700622e3fe99faf14d8">&sect;&nbsp;</a></span>trim_right() <span class="overload">[2/2]</span></h2>
598
599 <div class="memitem">
600 <div class="memproto">
601       <table class="memname">
602         <tr>
603           <td class="memname">QString MUtils::trim_right </td>
604           <td>(</td>
605           <td class="paramtype">const QString &amp;&#160;</td>
606           <td class="paramname"><em>str</em></td><td>)</td>
607           <td></td>
608         </tr>
609       </table>
610 </div><div class="memdoc">
611
612 <p>Remove <em>trailing</em> white-space characters. </p>
613 <p>The function removes all <em>trailing</em> white-space characters from the specified string. Leading white-space characters are <em>not</em> removed. White-space characters are defined by the <code>\s</code> character class.</p>
614 <dl class="params"><dt>Parameters</dt><dd>
615   <table class="params">
616     <tr><td class="paramname">str</td><td>A read-only reference to the QString object to be trimmed. The original QString object is <em>not</em> modified.</td></tr>
617   </table>
618   </dd>
619 </dl>
620 <dl class="section return"><dt>Returns</dt><dd>A new QString object that equals the original QString object, except that it has all <em>trailing</em> white-space characters removed. </dd></dl>
621
622 </div>
623 </div>
624 </div><!-- contents -->
625 <!-- start footer part -->
626 <hr class="footer"/><address class="footer"><small>
627 Generated on Mon Dec 19 2016 01:56:27 for MuldeR&#39;s Utilities for Qt by &#160;<a href="http://www.doxygen.org/index.html">
628 <img class="footer" src="../../doxygen.png" alt="doxygen"/>
629 </a> 1.8.12
630 </small></address>
631 </body>
632 </html>