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
4#include "databaseinfo.h"
5#include "driver.h"
6#include "ui4.h"
7#include "utils.h"
8
10
11using namespace Qt::StringLiterals;
12
13DatabaseInfo::DatabaseInfo() = default;
14
15void DatabaseInfo::acceptUI(DomUI *node)
16{
17 m_connections.clear();
18 m_cursors.clear();
19 m_fields.clear();
20
22
23 m_connections.removeDuplicates();
24}
25
26void DatabaseInfo::acceptWidget(DomWidget *node)
27{
28 QHash<QString, DomProperty*> properties = propertyMap(node->elementProperty());
29
30 DomProperty *frameworkCode = properties.value("frameworkCode"_L1);
31 if (frameworkCode && !toBool(frameworkCode->elementBool()))
32 return;
33
34 DomProperty *db = properties.value("database"_L1);
35 if (db && db->elementStringList()) {
36 QStringList info = db->elementStringList()->elementString();
37 if (info.isEmpty() || info.constFirst().isEmpty())
38 return;
39 const QString &connection = info.constFirst();
40 m_connections.append(connection);
41
42 QString table = info.size() > 1 ? info.at(1) : QString();
43 if (table.isEmpty())
44 return;
45 m_cursors[connection].append(table);
46
47 QString field = info.size() > 2 ? info.at(2) : QString();
48 if (field.isEmpty())
49 return;
50 m_fields[connection].append(field);
51 }
52
54}
55
56QT_END_NAMESPACE
void acceptUI(DomUI *node) override
void acceptWidget(DomWidget *node) override
\inmodule QtCore
Definition qhash.h:837
Combined button and popup list for selecting options.
virtual void acceptWidget(DomWidget *widget)
virtual void acceptUI(DomUI *ui)
Definition treewalker.cpp:9