1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the tools applications of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21 ** included in the packaging of this file. Please review the following 22 ** information to ensure the GNU General Public License requirements will 23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 24 ** 25 ** $QT_END_LICENSE$ 26 ** 27 ****************************************************************************/ 28 29 #include "databaseinfo.h" 30 #include "driver.h" 31 #include "ui4.h" 32 #include "utils.h" 33 34 QT_BEGIN_NAMESPACE 35 36 DatabaseInfo::DatabaseInfo() = default; 37 acceptUI(DomUI * node)38void DatabaseInfo::acceptUI(DomUI *node) 39 { 40 m_connections.clear(); 41 m_cursors.clear(); 42 m_fields.clear(); 43 44 TreeWalker::acceptUI(node); 45 46 m_connections.removeDuplicates(); 47 } 48 acceptWidget(DomWidget * node)49void DatabaseInfo::acceptWidget(DomWidget *node) 50 { 51 QHash<QString, DomProperty*> properties = propertyMap(node->elementProperty()); 52 53 DomProperty *frameworkCode = properties.value(QLatin1String("frameworkCode")); 54 if (frameworkCode && toBool(frameworkCode->elementBool()) == false) 55 return; 56 57 DomProperty *db = properties.value(QLatin1String("database")); 58 if (db && db->elementStringList()) { 59 QStringList info = db->elementStringList()->elementString(); 60 if (info.isEmpty() || info.constFirst().isEmpty()) 61 return; 62 const QString &connection = info.constFirst(); 63 m_connections.append(connection); 64 65 QString table = info.size() > 1 ? info.at(1) : QString(); 66 if (table.isEmpty()) 67 return; 68 m_cursors[connection].append(table); 69 70 QString field = info.size() > 2 ? info.at(2) : QString(); 71 if (field.isEmpty()) 72 return; 73 m_fields[connection].append(field); 74 } 75 76 TreeWalker::acceptWidget(node); 77 } 78 79 QT_END_NAMESPACE 80