added a drawer to change the server name and moved the display of the exported config to a separate drawer

This commit is contained in:
vladimir.kuznetsov 2023-06-20 10:25:24 +09:00
parent 4224e8314b
commit 3a264e6baf
30 changed files with 276 additions and 159 deletions

View file

@ -19,12 +19,23 @@ bool ServersModel::setData(const QModelIndex &index, const QVariant &value, int
return false;
}
QJsonObject server = m_servers.at(index.row()).toObject();
switch (role) {
case IsDefaultRole: {
m_settings->setDefaultServer(index.row());
m_defaultServerIndex = m_settings->defaultServerIndex();
}
default: return true;
case NameRole: {
server.insert(config_key::description, value.toString());
m_settings->editServer(index.row(), server);
m_servers.replace(index.row(), server);
break;
}
case IsDefaultRole: {
m_settings->setDefaultServer(index.row());
m_defaultServerIndex = m_settings->defaultServerIndex();
break;
}
default: {
return true;
}
}
emit dataChanged(index, index);
@ -51,6 +62,8 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
return server.value(config_key::hostName).toString();
case CredentialsRole:
return QVariant::fromValue(m_settings->serverCredentials(index.row()));
case CredentialsLoginRole:
return m_settings->serverCredentials(index.row()).userName;
case IsDefaultRole:
return index.row() == m_defaultServerIndex;
case IsCurrentlyProcessedRole:
@ -60,6 +73,12 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
return QVariant();
}
QVariant ServersModel::data(const int index, int role) const
{
QModelIndex modelIndex = this->index(index);
return data(modelIndex, role);
}
const int ServersModel::getDefaultServerIndex()
{
return m_defaultServerIndex;
@ -85,11 +104,6 @@ bool ServersModel::isDefaultServerCurrentlyProcessed()
return m_defaultServerIndex == m_currenlyProcessedServerIndex;
}
ServerCredentials ServersModel::getCurrentlyProcessedServerCredentials()
{
return qvariant_cast<ServerCredentials>(data(index(m_currenlyProcessedServerIndex), CredentialsRole));
}
void ServersModel::addServer(const QJsonObject &server)
{
beginResetModel();
@ -121,6 +135,7 @@ QHash<int, QByteArray> ServersModel::roleNames() const {
roles[NameRole] = "name";
roles[HostNameRole] = "hostName";
roles[CredentialsRole] = "credentials";
roles[CredentialsLoginRole] = "credentialsLogin";
roles[IsDefaultRole] = "isDefault";
roles[IsCurrentlyProcessedRole] = "isCurrentlyProcessed";
return roles;

View file

@ -19,6 +19,7 @@ public:
NameRole = Qt::UserRole + 1,
HostNameRole,
CredentialsRole,
CredentialsLoginRole,
IsDefaultRole,
IsCurrentlyProcessedRole
};
@ -29,6 +30,7 @@ public:
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
QVariant data(const int index, int role = Qt::DisplayRole) const;
public slots:
const int getDefaultServerIndex();
@ -38,7 +40,6 @@ public slots:
void setCurrentlyProcessedServerIndex(int index);
int getCurrentlyProcessedServerIndex();
ServerCredentials getCurrentlyProcessedServerCredentials();
void addServer(const QJsonObject &server);
void removeServer();