Basic version of ConnectionTreeModel is working.
This commit is contained in:
parent
3721808df4
commit
8840d3bcbb
8 changed files with 348 additions and 3 deletions
|
|
@ -57,6 +57,16 @@ ConnectionConfig::ConnectionConfig()
|
|||
: m_applicationName(QCoreApplication::applicationName().toUtf8().data())
|
||||
{}
|
||||
|
||||
ConnectionGroup *ConnectionConfig::parent()
|
||||
{
|
||||
return m_group;
|
||||
}
|
||||
|
||||
void ConnectionConfig::setParent(ConnectionGroup *grp)
|
||||
{
|
||||
m_group = grp;
|
||||
}
|
||||
|
||||
|
||||
void ConnectionConfig::setUuid(const QUuid &uuid)
|
||||
{
|
||||
|
|
@ -347,3 +357,9 @@ void ConnectionConfig::strToEnv(QProcessEnvironment &env, const QString &var, co
|
|||
else
|
||||
env.insert(var, stdStrToQ(val));
|
||||
}
|
||||
|
||||
void ConnectionGroup::add(std::shared_ptr<ConnectionConfig> cc)
|
||||
{
|
||||
cc->setParent(this);
|
||||
m_connections.push_back(cc);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define CONNECTION_H
|
||||
|
||||
#include <QUuid>
|
||||
#include <QVector>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
|
|
@ -24,10 +25,41 @@ enum class PasswordState {
|
|||
class QProcessEnvironment;
|
||||
class QString;
|
||||
|
||||
class ConnectionConfig {
|
||||
class ConnectionConfig;
|
||||
|
||||
/** Base class for ConnectionGroup and ConnectionConfig
|
||||
* to enable the use of RTTI in the tree model class.
|
||||
*/
|
||||
class ConnectionNode {
|
||||
public:
|
||||
virtual ~ConnectionNode() = default;
|
||||
};
|
||||
|
||||
class ConnectionGroup: public ConnectionNode {
|
||||
public:
|
||||
int conngroup_id;
|
||||
QString name;
|
||||
|
||||
using Connections = QVector<std::shared_ptr<ConnectionConfig>>;
|
||||
const Connections& connections() const { return m_connections; }
|
||||
|
||||
void add(std::shared_ptr<ConnectionConfig> cc);
|
||||
|
||||
bool operator==(const ConnectionGroup &rhs) const {
|
||||
return conngroup_id == rhs.conngroup_id
|
||||
&& name == rhs.name;
|
||||
}
|
||||
private:
|
||||
Connections m_connections;
|
||||
};
|
||||
|
||||
class ConnectionConfig: public ConnectionNode {
|
||||
public:
|
||||
ConnectionConfig(); // Default object containing invalid uuid
|
||||
|
||||
ConnectionGroup* parent();
|
||||
void setParent(ConnectionGroup *grp);
|
||||
|
||||
void setUuid(const QUuid &uuid);
|
||||
const QUuid &uuid() const;
|
||||
|
||||
|
|
@ -102,6 +134,7 @@ private:
|
|||
PasswordState m_passwordState = PasswordState::NotStored;
|
||||
|
||||
bool m_dirty = false;
|
||||
ConnectionGroup* m_group;
|
||||
|
||||
|
||||
static void strToEnv(QProcessEnvironment &env, const QString &var, const std::string &val);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue