Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
databaseinfo.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3// Qt-Security score:insignificant reason:build-tool
4
5#include "databaseinfo.h"
6#include "driver.h"
7#include "ui4.h"
8#include "utils.h"
9
11
12using namespace Qt::StringLiterals;
13
14DatabaseInfo::DatabaseInfo() = default;
15
16void DatabaseInfo::acceptUI(DomUI *node)
17{
18 m_connections.clear();
19 m_cursors.clear();
20 m_fields.clear();
21
23
24 m_connections.removeDuplicates();
25}
26
27void DatabaseInfo::acceptWidget(DomWidget *node)
28{
29 QHash<QString, DomProperty*> properties = propertyMap(node->elementProperty());
30
31 DomProperty *frameworkCode = properties.value("frameworkCode"_L1);
32 if (frameworkCode && !toBool(frameworkCode->elementBool()))
33 return;
34
35 DomProperty *db = properties.value("database"_L1);
36 if (db && db->elementStringList()) {
37 QStringList info = db->elementStringList()->elementString();
38 if (info.isEmpty() || info.constFirst().isEmpty())
39 return;
40 const QString &connection = info.constFirst();
41 m_connections.append(connection);
42
43 QString table = info.size() > 1 ? info.at(1) : QString();
44 if (table.isEmpty())
45 return;
46 m_cursors[connection].append(table);
47
48 QString field = info.size() > 2 ? info.at(2) : QString();
49 if (field.isEmpty())
50 return;
51 m_fields[connection].append(field);
52 }
53
55}
56
57QT_END_NAMESPACE
void acceptUI(DomUI *node) override
void acceptWidget(DomWidget *node) override
\inmodule QtCore
Definition qhash.h:844
Combined button and popup list for selecting options.
virtual void acceptWidget(DomWidget *widget)
virtual void acceptUI(DomUI *ui)