From b984b0b62076067f1f75db5a7eda5aaa2cdaad2a Mon Sep 17 00:00:00 2001 From: dac Date: Thu, 28 Oct 2010 12:36:30 +1000 Subject: Allow multiple labels per widget --- libqtslave/qtestwidgets.cpp | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/libqtslave/qtestwidgets.cpp b/libqtslave/qtestwidgets.cpp index 51ef0bf..45f3770 100644 --- a/libqtslave/qtestwidgets.cpp +++ b/libqtslave/qtestwidgets.cpp @@ -40,8 +40,6 @@ ****************************************************************************/ #include -#include - #include #define qLog(A) if (1); else qDebug() << #A @@ -51,7 +49,7 @@ bool active_test_widget_valid = false; uint qHash(QPointer o) { return qHash((QObject*)o); } -inline QString dehyphenate(QString const& in) +inline QString dehyphenate(const QString& in) { return QString(in).remove(QChar(0x00AD)); } /*! @@ -386,16 +384,11 @@ void QActiveTestWidgetData::resolveLabels() focusProxy = qbuddy ? qbuddy->focusProxy() : 0; } - if (resolved_buddy_pairs.values().contains(buddy)) { - qLog(QtUitest) << QString("*** duplicate Label: %1[%2] -- Buddy: %3[%4]").arg(w->metaObject()->className()).arg((long)(void*)w,0,32).arg(buddy->metaObject()->className()).arg((long)(void*)buddy,0,32).toLatin1(); - } else { - resolved_buddy_pairs.insert( w, buddy ); - qLog(QtUitest) << QString("*** resolved Label: %1[%2] -- Buddy: %3[%4]").arg(w->metaObject()->className()).arg((long)(void*)w,0,32).arg(buddy->metaObject()->className()).arg((long)(void*)buddy,0,32).toLatin1(); - unresolved_tw_buddies.removeAll( buddy ); - unresolved_tw_labels.removeAll( buddy ); - if (buddy != w) visible_tw_labels.removeAll( buddy ); - unresolved_tw_labels.removeAll( w ); - } + resolved_buddy_pairs.insert( w, buddy ); + unresolved_tw_buddies.removeAll( buddy ); + unresolved_tw_labels.removeAll( buddy ); + if (buddy != w) visible_tw_labels.removeAll( buddy ); + unresolved_tw_labels.removeAll( w ); } } @@ -421,19 +414,19 @@ QObject* QActiveTestWidgetData::findWidgetByLabel( const QString &text, QString possibleMatches << resolved_buddy_pairs[o]; } } - if (definiteMatches.count() == 1) { + if (definiteMatches.count() == 1 || definiteMatches.toSet().count() == 1) { return definiteMatches[0]; } - if (definiteMatches.count() > 1) { + if (definiteMatches.count() > 1 && definiteMatches.toSet().count() > 1) { error = "ERROR: '" + labelText + "' is ambiguous.\n Available labels: " + allLabels().join(","); return 0; } // No definite matches. - if (possibleMatches.count() == 1) { + if (possibleMatches.count() == 1 || possibleMatches.toSet().count() == 1) { return possibleMatches[0]; } - if (possibleMatches.count() > 1) { + if (possibleMatches.count() > 1 && possibleMatches.toSet().count() > 1) { error = "ERROR: '" + labelText + "' is ambiguous.\n Available labels: " + allLabels().join(","); return 0; } @@ -755,9 +748,8 @@ QString QActiveTestWidget::friendlyName( QObject* o ) if (!w) return QTestWidgets::signature(o); - - if (w->inherits(QtUiTest::TabBar)) - return TAB_BAR_ALIAS; + else if (w->inherits(QtUiTest::TabBar)) + return "tabBar()"; QString ret; rescan(ret, 50); -- cgit v1.2.3