refactor(Action): remove friends and protected

This commit is contained in:
sithlord48 2026-08-16 23:45:05 -04:00 committed by Nick Bolton
parent 41fb627876
commit 68f6c39498
3 changed files with 58 additions and 43 deletions

View file

@ -64,14 +64,14 @@ const KeySequence &Action::keySequence() const
void Action::loadSettings(QSettings &settings)
{
keySequence().loadSettings(settings);
m_keySequence.loadSettings(settings);
setType(settings.value(SettingsKeys::ActionType, static_cast<int>(Type::keyDown)).toInt());
typeScreenNames().clear();
m_typeScreenNames.clear();
int numTypeScreens = settings.beginReadArray(SettingsKeys::ScreenNames);
for (int i = 0; i < numTypeScreens; i++) {
settings.setArrayIndex(i);
typeScreenNames().append(settings.value(SettingsKeys::ScreenName).toString());
m_typeScreenNames.append(settings.value(SettingsKeys::ScreenName).toString());
}
settings.endArray();
@ -89,18 +89,18 @@ void Action::saveSettings(QSettings &settings) const
settings.setValue(SettingsKeys::ActionType, type());
settings.beginWriteArray(SettingsKeys::ScreenNames);
for (int i = 0; i < typeScreenNames().size(); i++) {
for (int i = 0; i < m_typeScreenNames.size(); i++) {
settings.setArrayIndex(i);
settings.setValue(SettingsKeys::ScreenName, typeScreenNames()[i]);
settings.setValue(SettingsKeys::ScreenName, m_typeScreenNames[i]);
}
settings.endArray();
settings.setValue(SettingsKeys::SwitchToScreen, switchScreenName());
settings.setValue(SettingsKeys::SwitchDirection, switchDirection());
settings.setValue(SettingsKeys::LockToScreen, lockCursorMode());
settings.setValue(SettingsKeys::ActiveOnRelease, activeOnRelease());
settings.setValue(SettingsKeys::HasScreens, haveScreens());
settings.setValue(SettingsKeys::RestartServer, restartServer());
settings.setValue(SettingsKeys::SwitchToScreen, m_switchScreenName);
settings.setValue(SettingsKeys::SwitchDirection, m_switchDirection);
settings.setValue(SettingsKeys::LockToScreen, m_lockCursorMode);
settings.setValue(SettingsKeys::ActiveOnRelease, m_activeOnRelease);
settings.setValue(SettingsKeys::HasScreens, m_hasScreens);
settings.setValue(SettingsKeys::RestartServer, m_restartServer);
}
int Action::type() const
@ -108,11 +108,30 @@ int Action::type() const
return m_type;
}
const QStringList &Action::typeScreenNames() const
QStringList Action::typeScreenNames() const
{
return m_typeScreenNames;
}
void Action::clearScreens()
{
m_typeScreenNames.clear();
}
void Action::addScreen(const QString &screen)
{
if (m_typeScreenNames.contains(screen))
return;
m_typeScreenNames.append(screen);
}
void Action::removeScreen(const QString &screen)
{
if (!m_typeScreenNames.contains(screen))
return;
m_typeScreenNames.removeAll(screen);
}
const QString &Action::switchScreenName() const
{
return m_switchScreenName;
@ -143,11 +162,6 @@ bool Action::restartServer() const
return m_restartServer;
}
KeySequence &Action::keySequence()
{
return m_keySequence;
}
void Action::setKeySequence(const KeySequence &seq)
{
m_keySequence = seq;
@ -158,11 +172,6 @@ void Action::setType(int t)
m_type = t;
}
QStringList &Action::typeScreenNames()
{
return m_typeScreenNames;
}
void Action::setSwitchScreenName(const QString &n)
{
m_switchScreenName = n;

View file

@ -14,7 +14,6 @@
#include <QString>
#include <QStringList>
class ActionDialog;
class QSettings;
class QTextStream;
@ -33,8 +32,6 @@ struct SettingsKeys
class Action
{
friend class ActionDialog;
friend QTextStream &operator<<(QTextStream &outStream, const Action &action);
public:
enum class Type
@ -69,32 +66,41 @@ public:
Action() = default;
QString text() const;
const KeySequence &keySequence() const;
void loadSettings(QSettings &settings);
void saveSettings(QSettings &settings) const;
const KeySequence &keySequence() const;
void setKeySequence(const KeySequence &seq);
int type() const;
const QStringList &typeScreenNames() const;
void setType(int t);
QStringList typeScreenNames() const;
void clearScreens();
void addScreen(const QString &screen);
void removeScreen(const QString &screen);
const QString &switchScreenName() const;
void setSwitchScreenName(const QString &n);
int switchDirection() const;
void setSwitchDirection(int d);
int lockCursorMode() const;
void setLockCursorMode(int m);
bool activeOnRelease() const;
void setActiveOnRelease(bool b);
bool haveScreens() const;
void setHaveScreens(bool b);
bool restartServer() const;
void setRestartServer(bool b);
bool operator==(const Action &a) const = default;
protected:
KeySequence &keySequence();
void setKeySequence(const KeySequence &seq);
void setType(int t);
QStringList &typeScreenNames();
void setSwitchScreenName(const QString &n);
void setSwitchDirection(int d);
void setLockCursorMode(int m);
void setActiveOnRelease(bool b);
void setHaveScreens(bool b);
void setRestartServer(bool b);
private:
KeySequence m_keySequence;
int m_type = static_cast<int>(Type::keystroke);

View file

@ -74,21 +74,21 @@ void ActionDialog::accept()
m_action.setKeySequence(ui->keySequenceWidget->keySequence());
m_action.setType(ui->comboActionType->currentIndex());
m_action.typeScreenNames().clear();
m_action.clearScreens();
int screenCount = ui->listScreens->count();
for (int i = 0; i < ui->listScreens->count(); i++) {
const auto &item = ui->listScreens->item(i);
m_action.typeScreenNames().append(item->text());
m_action.addScreen(item->text());
if (item->checkState() == Qt::Unchecked) {
screenCount--;
m_action.typeScreenNames().removeLast();
m_action.removeScreen(item->text());
}
}
if (screenCount == ui->listScreens->count())
m_action.typeScreenNames().clear();
m_action.clearScreens();
m_action.setHaveScreens(screenCount);