00001 <?php 00002 $rubrique = 65; 00003 $meta_description = "QExtend: Fichier source de signalcheckpoint.cpp"; 00004 $meta_keywords =" QExtend: Fichier source de signalcheckpoint.cpp"; 00005 $titre_page = "QExtend"; 00006 $urlCss = "http://www.developpez.com/template/kit/article.css"; 00007 $xhtml=true; 00008 $Auteur=""; 00009 $Licence="4"; 00010 $Annee="2010"; 00011 $topicType = 'Whitepaper'; 00012 $meta = '<link rel="stylesheet" type="text/css" media="screen" href="https://www.developpez.com/public/css/index2.css" /><link rel="stylesheet" type="text/css" media="screen" href="tabs.css" /><link rel="stylesheet" type="text/css" media="screen" href="doxygen.css" />'; 00013 include($_SERVER["DOCUMENT_ROOT"]."/template/entete.php"); 00014 00015 ob_start(); 00016 ?> 00017 <!-- Généré par Doxygen 1.7.1 --> 00018 <div class="navigation" id="top"> 00019 <div class="tabs"> 00020 <ul class="tablist"> 00021 <li><a href="index.php"><span>Page principale</span></a></li> 00022 <li><a href="namespaces.php"><span>Espaces de nommage</span></a></li> 00023 <li><a href="annotated.php"><span>Classes</span></a></li> 00024 <li class="current"><a href="files.php"><span>Fichiers</span></a></li> 00025 </ul> 00026 </div> 00027 <div class="tabs2"> 00028 <ul class="tablist"> 00029 <li><a href="files.php"><span>Liste des fichiers</span></a></li> 00030 </ul> 00031 </div> 00032 <div class="header"> 00033 <div class="headertitle"> 00034 <h1>signalcheckpoint.cpp</h1> </div> 00035 </div> 00036 <div class="contents"> 00037 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> 00038 <a name="l00002"></a>00002 <span class="comment">Copyright © 2010 yan Verdavaine</span> 00039 <a name="l00003"></a>00003 <span class="comment"></span> 00040 <a name="l00004"></a>00004 <span class="comment">This file is part of QExtend.</span> 00041 <a name="l00005"></a>00005 <span class="comment"></span> 00042 <a name="l00006"></a>00006 <span class="comment">QExtend is free software: you can redistribute it and/or modify</span> 00043 <a name="l00007"></a>00007 <span class="comment">it under the terms of the GNU General Public License as published by</span> 00044 <a name="l00008"></a>00008 <span class="comment">the Free Software Foundation, either version 3 of the License, or</span> 00045 <a name="l00009"></a>00009 <span class="comment">any later version. </span> 00046 <a name="l00010"></a>00010 <span class="comment"></span> 00047 <a name="l00011"></a>00011 <span class="comment">QExtend is distributed in the hope that it will be useful,</span> 00048 <a name="l00012"></a>00012 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span> 00049 <a name="l00013"></a>00013 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> 00050 <a name="l00014"></a>00014 <span class="comment">GNU General Public License for more details.</span> 00051 <a name="l00015"></a>00015 <span class="comment"></span> 00052 <a name="l00016"></a>00016 <span class="comment">You should have received a copy of the GNU General Public License</span> 00053 <a name="l00017"></a>00017 <span class="comment">along with QExtend. If not, see <http://www.gnu.org/licenses/>.</span> 00054 <a name="l00018"></a>00018 <span class="comment">*/</span> 00055 <a name="l00019"></a>00019 <span class="preprocessor">#include "signalcheckpoint.hpp"</span> 00056 <a name="l00020"></a>00020 <span class="preprocessor">#include "connector.hpp"</span> 00057 <a name="l00021"></a>00021 <span class="preprocessor">#include "extendptr.hpp"</span> 00058 <a name="l00022"></a>00022 <span class="preprocessor">#include <QMetaObject></span> 00059 <a name="l00023"></a>00023 <span class="preprocessor">#include <QMetaMethod></span> 00060 <a name="l00024"></a>00024 <span class="preprocessor">#include <QDebug></span> 00061 <a name="l00025"></a>00025 <span class="preprocessor">#include <QStringList></span> 00062 <a name="l00026"></a>00026 <span class="keyword">using namespace </span>QExtend; 00063 <a name="l00027"></a>00027 00064 <a name="l00028"></a>00028 00065 <a name="l00029"></a>00029 00066 <a name="l00030"></a>00030 <span class="keyword">namespace </span>QExtend{ 00067 <a name="l00031"></a>00031 00068 <a name="l00032"></a>00032 00069 <a name="l00033"></a><a class="code" href="struct_q_extend_1_1signal_param.php">00033</a> <span class="keyword">struct </span><a class="code" href="struct_q_extend_1_1signal_param.php">signalParam</a> 00070 <a name="l00034"></a>00034 { 00071 <a name="l00035"></a><a class="code" href="struct_q_extend_1_1signal_param.php#a553056f9081f548026c342970ae58c82">00035</a> <a class="code" href="class_q_extend_1_1_extend_ptr.php">ExtendPtr<const QObject , WEAK></a> sender; 00072 <a name="l00036"></a><a class="code" href="struct_q_extend_1_1signal_param.php#a0592eb11c8b5e364212aaa9d163bd8fa">00036</a> QList<QMetaType::Type> types; 00073 <a name="l00037"></a><a class="code" href="struct_q_extend_1_1signal_param.php#a144857216001b6474b0711bc471a5cd1">00037</a> QStringList names; 00074 <a name="l00038"></a>00038 00075 <a name="l00039"></a>00039 }; 00076 <a name="l00040"></a>00040 00077 <a name="l00041"></a>00041 <span class="keyword">struct </span><a class="code" href="struct_q_extend_1_1property_param.php">propertyParam</a> 00078 <a name="l00042"></a>00042 { 00079 <a name="l00043"></a><a class="code" href="struct_q_extend_1_1property_param.php#a80981e287fe1b5e9b7842c397229bb6b">00043</a> <a class="code" href="class_q_extend_1_1_extend_ptr.php">ExtendPtr<const QObject , WEAK></a> sender; 00080 <a name="l00044"></a>00044 <span class="keyword">const</span> <span class="keywordtype">char</span> * property; 00081 <a name="l00045"></a>00045 QString name; 00082 <a name="l00046"></a>00046 00083 <a name="l00047"></a>00047 }; 00084 <a name="l00048"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php">00048</a> <span class="keyword">class </span><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php">SignalCheckPoint::SignalCheckPointPrivate</a> : <span class="keyword">public</span> QObject 00085 <a name="l00049"></a>00049 { 00086 <a name="l00050"></a>00050 <span class="keyword">public</span> : 00087 <a name="l00051"></a>00051 00088 <a name="l00052"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#add43f18e994d663703bb302eaf09230c">00052</a> QVariantMap m_params; 00089 <a name="l00053"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">00053</a> QVector<signalParam> m_lSignalParam; 00090 <a name="l00054"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">00054</a> QVector<propertyParam> m_lPropertyParam; 00091 <a name="l00055"></a>00055 00092 <a name="l00056"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ae35ed23e71186f58c46de547ef1197ad">00056</a> <a class="code" href="class_q_extend_1_1_signal_check_point.php">SignalCheckPoint</a> * m_parent; 00093 <a name="l00057"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a63e78db0b1beb7872362a3c93b199214">00057</a> <span class="keywordtype">int</span> m_listenId; 00094 <a name="l00058"></a>00058 00095 <a name="l00059"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa02e1c3dab772a8c3b70541a4c764b38">00059</a> <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa02e1c3dab772a8c3b70541a4c764b38">~SignalCheckPointPrivate</a>() {} 00096 <a name="l00060"></a>00060 00097 <a name="l00061"></a>00061 <span class="keywordtype">int</span> qt_metacall(QMetaObject::Call call, <span class="keywordtype">int</span> methodId, <span class="keywordtype">void</span> **a); 00098 <a name="l00062"></a>00062 00099 <a name="l00063"></a>00063 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php">SignalCheckPointPrivate</a> (<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> &,<span class="keyword">const</span> QStringList & , <a class="code" href="class_q_extend_1_1_signal_check_point.php">SignalCheckPoint</a> *); 00100 <a name="l00064"></a>00064 00101 <a name="l00065"></a>00065 <span class="keywordtype">void</span> addEmitter(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> &,<span class="keyword">const</span> QStringList &); 00102 <a name="l00066"></a>00066 <span class="keywordtype">void</span> addEmitterProperty(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & ,<span class="keyword">const</span> <span class="keywordtype">char</span> * ,<span class="keyword">const</span> QString & = QString::null); 00103 <a name="l00067"></a>00067 00104 <a name="l00068"></a>00068 00105 <a name="l00069"></a>00069 }; 00106 <a name="l00070"></a>00070 00107 <a name="l00071"></a>00071 00108 <a name="l00072"></a>00072 00109 <a name="l00073"></a>00073 00110 <a name="l00074"></a>00074 00111 <a name="l00075"></a>00075 00112 <a name="l00076"></a>00076 00113 <a name="l00077"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a755f927296686b47d8037789b7638b77">00077</a> <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a755f927296686b47d8037789b7638b77">SignalCheckPoint::SignalCheckPointPrivate::SignalCheckPointPrivate</a> (<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & emitter ,<span class="keyword">const</span> QStringList & list, <a class="code" href="class_q_extend_1_1_signal_check_point.php">SignalCheckPoint</a> * parent) 00114 <a name="l00078"></a>00078 :m_parent(parent) 00115 <a name="l00079"></a>00079 { 00116 <a name="l00080"></a>00080 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a63e78db0b1beb7872362a3c93b199214">m_listenId</a> = QObject::staticMetaObject.methodCount(); 00117 <a name="l00081"></a>00081 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>.resize(10); 00118 <a name="l00082"></a>00082 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>.resize(10); 00119 <a name="l00083"></a>00083 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a4ebaa6a434e490d5e5b2da19307970c1">addEmitter</a>(emitter,list); 00120 <a name="l00084"></a>00084 } 00121 <a name="l00085"></a>00085 00122 <a name="l00086"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a4ebaa6a434e490d5e5b2da19307970c1">00086</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#ab900b70e24b5ec25b30dc7462cbfa17d" title="Ajoute l&#39;emitter à écouter.">SignalCheckPoint::SignalCheckPointPrivate::addEmitter</a>(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & emitter , <span class="keyword">const</span> QStringList & list) 00123 <a name="l00087"></a>00087 { 00124 <a name="l00088"></a>00088 00125 <a name="l00089"></a>00089 00126 <a name="l00090"></a>00090 00127 <a name="l00091"></a>00091 <span class="keywordflow">if</span>(emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>() == 0 || emitter.<a class="code" href="class_q_extend_1_1_emitter.php#a81210e6aa48e824445bc137aceab2e31" title="Accès à la signature du siganl du QObject.">signal</a>() ==0) 00128 <a name="l00092"></a>00092 { 00129 <a name="l00093"></a>00093 <span class="keywordflow">return</span>; 00130 <a name="l00094"></a>00094 } 00131 <a name="l00095"></a>00095 <span class="keywordflow">if</span> (((emitter.<a class="code" href="class_q_extend_1_1_emitter.php#a81210e6aa48e824445bc137aceab2e31" title="Accès à la signature du siganl du QObject.">signal</a>()[0] - <span class="charliteral">'0'</span>) & 0x03) != QSIGNAL_CODE) { 00132 <a name="l00096"></a>00096 qWarning(<span class="stringliteral">"QSignalSpy: Not a valid signal, use the SIGNAL macro"</span>); 00133 <a name="l00097"></a>00097 <span class="keywordflow">return</span>; 00134 <a name="l00098"></a>00098 } 00135 <a name="l00099"></a>00099 00136 <a name="l00100"></a>00100 00137 <a name="l00101"></a>00101 <span class="keyword">const</span> QMetaObject *mo = emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>()->metaObject(); 00138 <a name="l00102"></a>00102 QByteArray ba = QMetaObject::normalizedSignature(emitter.<a class="code" href="class_q_extend_1_1_emitter.php#a81210e6aa48e824445bc137aceab2e31" title="Accès à la signature du siganl du QObject.">signal</a>() + 1); 00139 <a name="l00103"></a>00103 <span class="keywordtype">int</span> sigIndex = mo->indexOfMethod(ba.constData()); 00140 <a name="l00104"></a>00104 <span class="keywordflow">if</span> (sigIndex < 0) { 00141 <a name="l00105"></a>00105 qWarning(<span class="stringliteral">"QSignalSpy: No such signal: '%s'"</span>, ba.constData()); 00142 <a name="l00106"></a>00106 <span class="keywordflow">return</span>; 00143 <a name="l00107"></a>00107 } 00144 <a name="l00108"></a>00108 00145 <a name="l00109"></a>00109 <span class="keywordflow">if</span> (!QMetaObject::connect(emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>(), sigIndex, <span class="keyword">this</span>, <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a63e78db0b1beb7872362a3c93b199214">m_listenId</a>, 00146 <a name="l00110"></a>00110 Qt::DirectConnection, 0)) { 00147 <a name="l00111"></a>00111 qWarning(<span class="stringliteral">"QSignalSpy: QMetaObject::connect returned false. Unable to connect."</span>); 00148 <a name="l00112"></a>00112 <span class="keywordflow">return</span>; 00149 <a name="l00113"></a>00113 } 00150 <a name="l00114"></a>00114 00151 <a name="l00115"></a>00115 <a class="code" href="struct_q_extend_1_1signal_param.php">signalParam</a> tmp; 00152 <a name="l00116"></a>00116 { 00153 <a name="l00117"></a>00117 tmp.<a class="code" href="struct_q_extend_1_1signal_param.php#a144857216001b6474b0711bc471a5cd1">names</a> = list; 00154 <a name="l00118"></a>00118 tmp.<a class="code" href="struct_q_extend_1_1signal_param.php#a553056f9081f548026c342970ae58c82">sender</a> = emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>(); 00155 <a name="l00119"></a>00119 00156 <a name="l00120"></a>00120 00157 <a name="l00121"></a>00121 <span class="keywordflow">foreach</span>(<span class="keyword">const</span> QByteArray & ba , mo->method(sigIndex).parameterTypes () ) 00158 <a name="l00122"></a>00122 { 00159 <a name="l00123"></a>00123 tmp.<a class="code" href="struct_q_extend_1_1signal_param.php#a0592eb11c8b5e364212aaa9d163bd8fa">types</a> << <span class="keyword">static_cast<</span>QMetaType::Type<span class="keyword">></span>(QMetaType::type(ba.constData())); ; 00160 <a name="l00124"></a>00124 } 00161 <a name="l00125"></a>00125 00162 <a name="l00126"></a>00126 00163 <a name="l00127"></a>00127 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = tmp.<a class="code" href="struct_q_extend_1_1signal_param.php#a144857216001b6474b0711bc471a5cd1">names</a>.size() ; i < tmp.<a class="code" href="struct_q_extend_1_1signal_param.php#a0592eb11c8b5e364212aaa9d163bd8fa">types</a>.size() ; ++i) 00164 <a name="l00128"></a>00128 { 00165 <a name="l00129"></a>00129 tmp.<a class="code" href="struct_q_extend_1_1signal_param.php#a144857216001b6474b0711bc471a5cd1">names</a> << QString::null; 00166 <a name="l00130"></a>00130 } 00167 <a name="l00131"></a>00131 } 00168 <a name="l00132"></a>00132 00169 <a name="l00133"></a>00133 <span class="keywordflow">if</span>(<a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>.size() < m_listenId +1 ) 00170 <a name="l00134"></a>00134 { 00171 <a name="l00135"></a>00135 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>.resize(m_listenId +1); 00172 <a name="l00136"></a>00136 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>.resize(m_listenId +1); 00173 <a name="l00137"></a>00137 } 00174 <a name="l00138"></a>00138 00175 <a name="l00139"></a>00139 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>[m_listenId] = tmp; 00176 <a name="l00140"></a>00140 00177 <a name="l00141"></a>00141 ++m_listenId; 00178 <a name="l00142"></a>00142 } 00179 <a name="l00143"></a>00143 00180 <a name="l00144"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#adc4f7e35fcf1d00ef89aab0a2680f70e">00144</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#ae6779289e092b2593a7204115ba5667e" title="Ajoute une propriété à écouter quand un signal est emit.">SignalCheckPoint::SignalCheckPointPrivate::addEmitterProperty</a>(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & emitter,<span class="keyword">const</span> <span class="keywordtype">char</span> * p,<span class="keyword">const</span> QString & s) 00181 <a name="l00145"></a>00145 { 00182 <a name="l00146"></a>00146 00183 <a name="l00147"></a>00147 00184 <a name="l00148"></a>00148 00185 <a name="l00149"></a>00149 00186 <a name="l00150"></a>00150 00187 <a name="l00151"></a>00151 <span class="keywordflow">if</span>(emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>() == 0 || emitter.<a class="code" href="class_q_extend_1_1_emitter.php#a81210e6aa48e824445bc137aceab2e31" title="Accès à la signature du siganl du QObject.">signal</a>() ==0) 00188 <a name="l00152"></a>00152 { 00189 <a name="l00153"></a>00153 <span class="keywordflow">return</span>; 00190 <a name="l00154"></a>00154 } 00191 <a name="l00155"></a>00155 <span class="keywordflow">if</span> (((emitter.<a class="code" href="class_q_extend_1_1_emitter.php#a81210e6aa48e824445bc137aceab2e31" title="Accès à la signature du siganl du QObject.">signal</a>()[0] - <span class="charliteral">'0'</span>) & 0x03) != QSIGNAL_CODE) { 00192 <a name="l00156"></a>00156 qWarning(<span class="stringliteral">"QSignalSpy: Not a valid signal, use the SIGNAL macro"</span>); 00193 <a name="l00157"></a>00157 <span class="keywordflow">return</span>; 00194 <a name="l00158"></a>00158 } 00195 <a name="l00159"></a>00159 00196 <a name="l00160"></a>00160 00197 <a name="l00161"></a>00161 <span class="keyword">const</span> QMetaObject *mo = emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>()->metaObject(); 00198 <a name="l00162"></a>00162 QByteArray ba = QMetaObject::normalizedSignature(emitter.<a class="code" href="class_q_extend_1_1_emitter.php#a81210e6aa48e824445bc137aceab2e31" title="Accès à la signature du siganl du QObject.">signal</a>() + 1); 00199 <a name="l00163"></a>00163 <span class="keywordtype">int</span> sigIndex = mo->indexOfMethod(ba.constData()); 00200 <a name="l00164"></a>00164 <span class="keywordflow">if</span> (sigIndex < 0) { 00201 <a name="l00165"></a>00165 qWarning(<span class="stringliteral">"QSignalSpy: No such signal: '%s'"</span>, ba.constData()); 00202 <a name="l00166"></a>00166 <span class="keywordflow">return</span>; 00203 <a name="l00167"></a>00167 } 00204 <a name="l00168"></a>00168 00205 <a name="l00169"></a>00169 <span class="keywordflow">if</span> (!QMetaObject::connect(emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>(), sigIndex, <span class="keyword">this</span>, <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#a63e78db0b1beb7872362a3c93b199214">m_listenId</a>, 00206 <a name="l00170"></a>00170 Qt::DirectConnection, 0)) { 00207 <a name="l00171"></a>00171 qWarning(<span class="stringliteral">"QSignalSpy: QMetaObject::connect returned false. Unable to connect."</span>); 00208 <a name="l00172"></a>00172 <span class="keywordflow">return</span>; 00209 <a name="l00173"></a>00173 } 00210 <a name="l00174"></a>00174 00211 <a name="l00175"></a>00175 <span class="keywordflow">if</span>(<a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>.size() < m_listenId +1 ) 00212 <a name="l00176"></a>00176 { 00213 <a name="l00177"></a>00177 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>.resize(m_listenId +1); 00214 <a name="l00178"></a>00178 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>.resize(m_listenId +1); 00215 <a name="l00179"></a>00179 } 00216 <a name="l00180"></a>00180 00217 <a name="l00181"></a>00181 <a class="code" href="struct_q_extend_1_1property_param.php">propertyParam</a> tmp; 00218 <a name="l00182"></a>00182 tmp.<a class="code" href="struct_q_extend_1_1property_param.php#a80981e287fe1b5e9b7842c397229bb6b">sender</a> = emitter.<a class="code" href="class_q_extend_1_1_emitter.php#acbb77cc9132de84cf55cc517b0713a28" title="Accès au QObject interfacé qui émet un signal. Si l&#39;object as été détruit, la fonction retourne 0...">emitter</a>(); 00219 <a name="l00183"></a>00183 tmp.<a class="code" href="struct_q_extend_1_1property_param.php#ae63b745096c531894b0c3116c46330d0">property</a> = p; 00220 <a name="l00184"></a>00184 tmp.<a class="code" href="struct_q_extend_1_1property_param.php#a757d7b3c05e9380ce6f90a3e426ba53c">name</a> = s.isEmpty() ? p : s; 00221 <a name="l00185"></a>00185 00222 <a name="l00186"></a>00186 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>[m_listenId] = tmp; 00223 <a name="l00187"></a>00187 ++m_listenId; 00224 <a name="l00188"></a>00188 } 00225 <a name="l00189"></a><a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad36e2a1c9ab318fe9a7b3aba5bf87362">00189</a> <span class="keywordtype">int</span> <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad36e2a1c9ab318fe9a7b3aba5bf87362">SignalCheckPoint::SignalCheckPointPrivate::qt_metacall</a>(QMetaObject::Call call, <span class="keywordtype">int</span> methodId, <span class="keywordtype">void</span> **a) 00226 <a name="l00190"></a>00190 { 00227 <a name="l00191"></a>00191 00228 <a name="l00192"></a>00192 00229 <a name="l00193"></a>00193 <span class="keywordflow">if</span> (methodId < 0) 00230 <a name="l00194"></a>00194 <span class="keywordflow">return</span> methodId; 00231 <a name="l00195"></a>00195 00232 <a name="l00196"></a>00196 <span class="keywordflow">if</span> (call == QMetaObject::InvokeMetaMethod) 00233 <a name="l00197"></a>00197 { 00234 <a name="l00198"></a>00198 <span class="keywordflow">if</span> (<a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>.size() > methodId && <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>[methodId].sender) 00235 <a name="l00199"></a>00199 { 00236 <a name="l00200"></a>00200 <span class="keyword">const</span> QList<QMetaType::Type> & paramTypes = <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>[methodId].types; 00237 <a name="l00201"></a>00201 <span class="keyword">const</span> QStringList & paramNames = <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad8b68673c0e13f6871d736c4e78c02f7">m_lSignalParam</a>[methodId].names; 00238 <a name="l00202"></a>00202 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < paramTypes.size(); ++i) 00239 <a name="l00203"></a>00203 { 00240 <a name="l00204"></a>00204 QVariant var = QVariant(paramTypes[i], a[i + 1]); 00241 <a name="l00205"></a>00205 <span class="keywordflow">if</span>( ! paramNames[i].isEmpty() ) 00242 <a name="l00206"></a>00206 { 00243 <a name="l00207"></a>00207 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#add43f18e994d663703bb302eaf09230c">m_params</a>[ paramNames[i]] = var; 00244 <a name="l00208"></a>00208 } 00245 <a name="l00209"></a>00209 } 00246 <a name="l00210"></a>00210 } 00247 <a name="l00211"></a>00211 <span class="keywordflow">if</span>( <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>.size() > methodId && <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>[methodId].sender) 00248 <a name="l00212"></a>00212 { 00249 <a name="l00213"></a>00213 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#add43f18e994d663703bb302eaf09230c">m_params</a>[<a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#aa21baf7c23fde37ba4b90656cbf75404">m_lPropertyParam</a>[methodId].name] = m_lPropertyParam[methodId].sender->property( m_lPropertyParam[methodId].property ); 00250 <a name="l00214"></a>00214 } 00251 <a name="l00215"></a>00215 00252 <a name="l00216"></a>00216 <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ae35ed23e71186f58c46de547ef1197ad">m_parent</a>-><a class="code" href="class_q_extend_1_1_signal_check_point.php#ae354c5a47a4031ab931484d3bc9991f7" title="Emet les derniers paramètres.">emitParameters</a>(); 00253 <a name="l00217"></a>00217 <span class="keywordflow">return</span> -1; 00254 <a name="l00218"></a>00218 } 00255 <a name="l00219"></a>00219 00256 <a name="l00220"></a>00220 <span class="keywordflow">return</span> <a class="code" href="class_q_extend_1_1_signal_check_point_1_1_signal_check_point_private.php#ad36e2a1c9ab318fe9a7b3aba5bf87362">QObject::qt_metacall</a>(call, methodId, a); 00257 <a name="l00221"></a>00221 } 00258 <a name="l00222"></a>00222 00259 <a name="l00223"></a>00223 <span class="comment">//end of namespace</span> 00260 <a name="l00224"></a>00224 } 00261 <a name="l00225"></a>00225 00262 <a name="l00226"></a>00226 00263 <a name="l00227"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#a1f13c6d3fe8f358c3a5f7fe0c741978e">00227</a> <a class="code" href="class_q_extend_1_1_signal_check_point.php#a1f13c6d3fe8f358c3a5f7fe0c741978e" title="Créé un nouveau SignalCheckPoint.">SignalCheckPoint::SignalCheckPoint</a>(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & emitter ,<span class="keyword">const</span> QStringList & list , QObject * parent) 00264 <a name="l00228"></a>00228 :QObject(parent),m_internal ( emitter , list , this) 00265 <a name="l00229"></a>00229 {} 00266 <a name="l00230"></a>00230 ; 00267 <a name="l00231"></a>00231 00268 <a name="l00232"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#ae354c5a47a4031ab931484d3bc9991f7">00232</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#ae354c5a47a4031ab931484d3bc9991f7" title="Emet les derniers paramètres.">SignalCheckPoint::emitParameters</a>() 00269 <a name="l00233"></a>00233 { 00270 <a name="l00234"></a>00234 00271 <a name="l00235"></a>00235 00272 <a name="l00236"></a>00236 Q_EMIT <a class="code" href="class_q_extend_1_1_signal_check_point.php#a9800a3940ee83b62e48ea9f623fe5e08" title="Signal qui émet les derniers paramètres.">parameters</a>(m_internal->m_params); 00273 <a name="l00237"></a>00237 } 00274 <a name="l00238"></a>00238 00275 <a name="l00239"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#a219febc17db1a831318fe5b8fa72bf84">00239</a> <span class="keyword">const</span> QVariantMap & <a class="code" href="class_q_extend_1_1_signal_check_point.php#a219febc17db1a831318fe5b8fa72bf84" title="donne les derniers paramètres.">SignalCheckPoint::getParameters</a>() 00276 <a name="l00240"></a>00240 { 00277 <a name="l00241"></a>00241 <span class="keywordflow">return</span> m_internal->m_params; 00278 <a name="l00242"></a>00242 } 00279 <a name="l00243"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#a1c2f3e8edf37bfa26050eeec1de265a0">00243</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#a1c2f3e8edf37bfa26050eeec1de265a0" title="initialise les paramètres courants.">SignalCheckPoint::setParameters</a>(<span class="keyword">const</span> QVariantMap & m) 00280 <a name="l00244"></a>00244 { 00281 <a name="l00245"></a>00245 m_internal->m_params = m; 00282 <a name="l00246"></a>00246 } 00283 <a name="l00247"></a>00247 00284 <a name="l00248"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#a286919d763637f73ae25f55d5b4bd0bc">00248</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#a286919d763637f73ae25f55d5b4bd0bc" title="Efface les paramètres courants.">SignalCheckPoint::clear</a>() 00285 <a name="l00249"></a>00249 { 00286 <a name="l00250"></a>00250 m_internal->m_params.clear(); 00287 <a name="l00251"></a>00251 } 00288 <a name="l00252"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#ab900b70e24b5ec25b30dc7462cbfa17d">00252</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#ab900b70e24b5ec25b30dc7462cbfa17d" title="Ajoute l&#39;emitter à écouter.">SignalCheckPoint::addEmitter</a>(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & emitter,<span class="keyword">const</span> QStringList & list) 00289 <a name="l00253"></a>00253 { 00290 <a name="l00254"></a>00254 m_internal->addEmitter(emitter , list); 00291 <a name="l00255"></a>00255 } 00292 <a name="l00256"></a>00256 00293 <a name="l00257"></a><a class="code" href="class_q_extend_1_1_signal_check_point.php#ae6779289e092b2593a7204115ba5667e">00257</a> <span class="keywordtype">void</span> <a class="code" href="class_q_extend_1_1_signal_check_point.php#ae6779289e092b2593a7204115ba5667e" title="Ajoute une propriété à écouter quand un signal est emit.">SignalCheckPoint::addEmitterProperty</a>(<span class="keyword">const</span> <a class="code" href="class_q_extend_1_1_emitter.php" title="Interface une instance de QObject avec un de ses signal.">Emitter</a> & emitter,<span class="keyword">const</span> <span class="keywordtype">char</span> * p,<span class="keyword">const</span> QString & s) 00294 <a name="l00258"></a>00258 { 00295 <a name="l00259"></a>00259 m_internal->addEmitterProperty(emitter , p , s ); 00296 <a name="l00260"></a>00260 } 00297 </pre></div></div> 00298 </div> 00299 <?php 00300 echo utf8_decode(ob_get_clean()); 00301 include($_SERVER["DOCUMENT_ROOT"]."/template/pied.php"); 00302 ?>
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.