equal
deleted
inserted
replaced
337 \sa start() |
337 \sa start() |
338 */ |
338 */ |
339 |
339 |
340 void QTimer::singleShot(int msec, QObject *receiver, const char *member) |
340 void QTimer::singleShot(int msec, QObject *receiver, const char *member) |
341 { |
341 { |
342 if (receiver && member) |
342 if (receiver && member) { |
|
343 if (msec == 0) { |
|
344 // special code shortpath for 0-timers |
|
345 const char* bracketPosition = strchr(member, '('); |
|
346 if (!bracketPosition || !(member[0] >= '0' && member[0] <= '3')) { |
|
347 qWarning("QTimer::singleShot: Invalid slot specification"); |
|
348 return; |
|
349 } |
|
350 QByteArray methodName(member+1, bracketPosition - 1 - member); // extract method name |
|
351 QMetaObject::invokeMethod(receiver, methodName.constData(), Qt::QueuedConnection); |
|
352 return; |
|
353 } |
343 (void) new QSingleShotTimer(msec, receiver, member); |
354 (void) new QSingleShotTimer(msec, receiver, member); |
|
355 } |
344 } |
356 } |
345 |
357 |
346 /*! |
358 /*! |
347 \property QTimer::singleShot |
359 \property QTimer::singleShot |
348 \brief whether the timer is a single-shot timer |
360 \brief whether the timer is a single-shot timer |