From 78ea4d2d2f3d04cc21973d330c3ac0de8f46455c Mon Sep 17 00:00:00 2001 From: Christian Kandeler <christian.kandeler@nokia.com> Date: Tue, 21 Sep 2010 16:28:10 +0200 Subject: [PATCH] Maemo: More stable check for on-device Qt packages. According to the man page, dpkg -l ist not suitable for automated parsing. Reviewed-by: kh1 --- .../qt-maemo/maemoconfigtestdialog.cpp | 18 +++++++++--------- .../qt-maemo/maemoconfigtestdialog.ui | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp index dfb1e0e7a4c..80d78ffba43 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp @@ -89,9 +89,8 @@ void MaemoConfigTestDialog::handleConnected() if (!m_connection) return; QLatin1String sysInfoCmd("uname -rsm"); - QLatin1String qtInfoCmd("dpkg -l |grep libqt |grep '^ii'" - "|sed 's/[[:space:]][[:space:]]*/ /g' " - "|cut -d ' ' -f 2,3 |sed 's/~.*//g'"); + QLatin1String qtInfoCmd("dpkg-query -W -f '${Package} ${Version} ${Status}\n' 'libqt*' " + "|grep ' installed$'"); QString command(sysInfoCmd + " && " + qtInfoCmd); m_infoProcess = m_connection->createRemoteProcess(command.toUtf8()); connect(m_infoProcess.data(), SIGNAL(closed(int)), this, @@ -205,7 +204,7 @@ QString MaemoConfigTestDialog::parseTestOutput() output = tr("Hardware architecture: %1\n").arg(unamePattern.cap(2)); output.append(tr("Kernel version: %1\n").arg(unamePattern.cap(1))); - const QRegExp dkpgPattern(QLatin1String("libqt\\S+\\s+(?:\\d:)?(\\d)\\.(\\d)\\.(\\d)")); + const QRegExp dkpgPattern(QLatin1String("(\\S+) (\\S*(\\d+)\\.(\\d+)\\.(\\d+)\\S*) \\S+ \\S+ \\S+")); index = dkpgPattern.indexIn(m_deviceTestOutput); if (index == -1) { output.append(tr("No Qt packages installed.")); @@ -214,11 +213,12 @@ QString MaemoConfigTestDialog::parseTestOutput() output.append(tr("List of installed Qt packages:") + QLatin1Char('\n')); do { - output.append(QLatin1Char('\t') + dkpgPattern.cap(0) - + QLatin1Char('\n')); - index = dkpgPattern.indexIn(m_deviceTestOutput, index + 1); - if (!m_qtVersionOk && QT_VERSION_CHECK(dkpgPattern.cap(1).toInt(), - dkpgPattern.cap(2).toInt(), dkpgPattern.cap(3).toInt()) >= 0x040602) { + output.append(QLatin1Char('\t') + dkpgPattern.cap(1) + QLatin1Char(' ') + + dkpgPattern.cap(2) + QLatin1Char('\n')); + index = dkpgPattern.indexIn(m_deviceTestOutput, index + + dkpgPattern.cap(0).length()); + if (!m_qtVersionOk && QT_VERSION_CHECK(dkpgPattern.cap(3).toInt(), + dkpgPattern.cap(4).toInt(), dkpgPattern.cap(5).toInt()) >= 0x040602) { m_qtVersionOk = true; } } while (index != -1); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.ui b/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.ui index 798a61aac8c..e91549702c3 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.ui +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>395</width> - <height>190</height> + <width>661</width> + <height>324</height> </rect> </property> <property name="windowTitle"> -- GitLab