added page transition effects

- added functionality for buttons on PageSettingsServerData page
This commit is contained in:
vladimir.kuznetsov 2023-06-01 11:25:33 +08:00
parent 1e180489a4
commit de0cd976de
38 changed files with 656 additions and 335 deletions

View file

@ -86,6 +86,7 @@ void ContainersModel::setCurrentlyProcessedServerIndex(int index)
beginResetModel();
m_currentlyProcessedServerIndex = index;
endResetModel();
emit defaultContainerChanged();
}
void ContainersModel::setCurrentlyInstalledContainerIndex(int index)
@ -115,7 +116,7 @@ void ContainersModel::removeAllContainers()
auto errorCode = serverController.removeAllContainers(m_settings->serverCredentials(m_currentlyProcessedServerIndex));
if (errorCode == ErrorCode::NoError) {
beginResetModel();
beginResetModel();
m_settings->setContainers(m_currentlyProcessedServerIndex, {});
m_settings->setDefaultContainer(m_currentlyProcessedServerIndex, DockerContainer::None);
endResetModel();
@ -124,6 +125,14 @@ void ContainersModel::removeAllContainers()
//todo process errors
}
void ContainersModel::clearCachedProfiles()
{
const auto &containers = m_settings->containers(m_currentlyProcessedServerIndex);
for (DockerContainer container : containers.keys()) {
m_settings->clearLastConnectionConfig(m_currentlyProcessedServerIndex, container);
}
}
QHash<int, QByteArray> ContainersModel::roleNames() const {
QHash<int, QByteArray> roles;
roles[NameRole] = "name";

View file

@ -49,6 +49,7 @@ public slots:
int getCurrentlyInstalledContainerIndex();
void removeAllContainers();
void clearCachedProfiles();
protected:
QHash<int, QByteArray> roleNames() const override;

View file

@ -17,15 +17,14 @@ bool ServersModel::setData(const QModelIndex &index, const QVariant &value, int
|| index.row() >= static_cast<int>(m_settings->serversCount())) {
return false;
}
// if (role == DescRole) {
// return m_data[index.row()].desc;
// }
// if (role == AddressRole) {
// return m_data[index.row()].address;
// }
// if (role == IsDefaultRole) {
// return m_data[index.row()].isDefault;
// }
switch (role) {
case IsDefaultRole: m_settings->setDefaultServer(index.row());
default: return true;
}
emit dataChanged(index, index);
return true;
}
QVariant ServersModel::data(const QModelIndex &index, int role) const
@ -58,14 +57,6 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
return QVariant();
}
//todo mode to setData?
void ServersModel::setDefaultServerIndex(int index)
{
// beginResetModel();
m_settings->setDefaultServer(index);
// endResetModel();
}
const int ServersModel::getDefaultServerIndex()
{
return m_settings->defaultServerIndex();
@ -81,14 +72,38 @@ void ServersModel::setCurrentlyProcessedServerIndex(int index)
m_currenlyProcessedServerIndex = index;
}
bool ServersModel::isDefaultServerCurrentlyProcessed()
{
return m_settings->defaultServerIndex() == m_currenlyProcessedServerIndex;
}
ServerCredentials ServersModel::getCurrentlyProcessedServerCredentials()
{
return qvariant_cast<ServerCredentials>(data(index(m_currenlyProcessedServerIndex), CredentialsRole));
}
void ServersModel::addServer()
void ServersModel::addServer(const QJsonObject &server)
{
beginResetModel();
m_settings->addServer(server);
endResetModel();
}
void ServersModel::removeServer()
{
beginResetModel();
m_settings->removeServer(m_currenlyProcessedServerIndex);
if (m_settings->defaultServerIndex() == m_currenlyProcessedServerIndex) {
m_settings->setDefaultServer(0);
} else if (m_settings->defaultServerIndex() > m_currenlyProcessedServerIndex) {
m_settings->setDefaultServer(m_settings->defaultServerIndex() - 1);
}
if (m_settings->serversCount() == 0) {
m_settings->setDefaultServer(-1);
}
endResetModel();
}
QHash<int, QByteArray> ServersModel::roleNames() const {

View file

@ -31,15 +31,16 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
public slots:
void setDefaultServerIndex(int index);
const int getDefaultServerIndex();
bool isDefaultServerCurrentlyProcessed();
const int getServersCount();
void setCurrentlyProcessedServerIndex(int index);
ServerCredentials getCurrentlyProcessedServerCredentials();
void addServer();
void addServer(const QJsonObject &server);
void removeServer();
protected:
QHash<int, QByteArray> roleNames() const override;