玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
ParameterDatabase.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include <QSqlDatabase>
4#include "ParameterDatabase.h"
5
6CParameterDatabase::CParameterDatabase(QObject *parent, const QString &szPrefix)
7 : CParameterOperate{parent, szPrefix}
8 , m_Net(this, "Database")
9 , m_szType("QSQLITE")
10{
11 m_Net.SetPort(3306);
12}
13
14int CParameterDatabase::OnLoad(QSettings &set)
15{
16 set.beginGroup("Database");
17 SetType(set.value("Type", GetType()).toString());
18 SetDatabaseName(set.value("DatabaseName", GetDatabaseName()).toString());
19 SetOptions(set.value("Options", GetOptions()).toString());
20 set.endGroup();
21 return 0;
22}
23
24int CParameterDatabase::OnSave(QSettings &set)
25{
26 set.beginGroup("Database");
27 set.setValue("Type", GetType());
28 set.setValue("DatabaseName", GetDatabaseName());
29 set.setValue("Options", GetOptions());
30 set.endGroup();
31 return 0;
32}
33
34QString CParameterDatabase::GetType() const
35{
36 return m_szType;
37}
38
39void CParameterDatabase::SetType(const QString &newType)
40{
41 if(m_szType == newType)
42 return;
43 m_szType = newType;
44 SetModified(true);
45}
46
47QString CParameterDatabase::GetDatabaseName() const
48{
49 return m_szDatabaseName;
50}
51
52void CParameterDatabase::SetDatabaseName(const QString &newDatabaseName)
53{
54 if(m_szDatabaseName == newDatabaseName)
55 return;
56 m_szDatabaseName = newDatabaseName;
57 SetModified(true);
58}
59
60QString CParameterDatabase::GetOptions() const
61{
62 return m_szOptions;
63}
64
65void CParameterDatabase::SetOptions(const QString &newOptions)
66{
67 if(m_szOptions == newOptions)
68 return;
69 m_szOptions = newOptions;
70 SetModified(true);
71}
72
73QSet<QString> CParameterDatabase::GetSupportDatabase()
74{
75 QSet<QString> supportDrivers;
76 supportDrivers << "QSQLITE" << "QMYSQL" << "QODBC";
77 return supportDrivers;
78}
79
80const QString CParameterDatabase::Details() const
81{
82 auto supportDrivers = GetSupportDatabase();
83 QString szDetail = "## " + tr("Database drivers") + "\n";
84 foreach(auto d, QSqlDatabase::drivers()){
85 szDetail += " - " + d;
86 if(GetType() == d) {
87 szDetail += " (" + tr("Current used") + ")";
88 } else if(supportDrivers.contains(d))
89 szDetail += " (" + tr("Supported") + ")";
90 szDetail += "\n";
91 }
92 return szDetail;
93}
94
95CParameterDatabase& CParameterDatabase::operator=(const CParameterDatabase &in)
96{
97 m_Net = in.m_Net;
98
99 m_szType = in.m_szType;
100 m_szDatabaseName = in.m_szDatabaseName;
101 m_szOptions = in.m_szOptions;
102
103 return *this;
104}
操作参数接口。仅在插件内有效。
int SetModified(bool bModified=true)
在设置参数时,如果有修改,则调用。