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

View file

@ -14,7 +14,6 @@
#include <QString> #include <QString>
#include <QStringList> #include <QStringList>
class ActionDialog;
class QSettings; class QSettings;
class QTextStream; class QTextStream;
@ -33,8 +32,6 @@ struct SettingsKeys
class Action class Action
{ {
friend class ActionDialog;
friend QTextStream &operator<<(QTextStream &outStream, const Action &action);
public: public:
enum class Type enum class Type
@ -69,32 +66,41 @@ public:
Action() = default; Action() = default;
QString text() const; QString text() const;
const KeySequence &keySequence() const;
void loadSettings(QSettings &settings); void loadSettings(QSettings &settings);
void saveSettings(QSettings &settings) const; void saveSettings(QSettings &settings) const;
const KeySequence &keySequence() const;
void setKeySequence(const KeySequence &seq);
int type() const; 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; const QString &switchScreenName() const;
void setSwitchScreenName(const QString &n);
int switchDirection() const; int switchDirection() const;
void setSwitchDirection(int d);
int lockCursorMode() const; int lockCursorMode() const;
void setLockCursorMode(int m);
bool activeOnRelease() const; bool activeOnRelease() const;
void setActiveOnRelease(bool b);
bool haveScreens() const; bool haveScreens() const;
void setHaveScreens(bool b);
bool restartServer() const; bool restartServer() const;
void setRestartServer(bool b);
bool operator==(const Action &a) const = default; 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: private:
KeySequence m_keySequence; KeySequence m_keySequence;
int m_type = static_cast<int>(Type::keystroke); 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.setKeySequence(ui->keySequenceWidget->keySequence());
m_action.setType(ui->comboActionType->currentIndex()); m_action.setType(ui->comboActionType->currentIndex());
m_action.typeScreenNames().clear(); m_action.clearScreens();
int screenCount = ui->listScreens->count(); int screenCount = ui->listScreens->count();
for (int i = 0; i < ui->listScreens->count(); i++) { for (int i = 0; i < ui->listScreens->count(); i++) {
const auto &item = ui->listScreens->item(i); const auto &item = ui->listScreens->item(i);
m_action.typeScreenNames().append(item->text()); m_action.addScreen(item->text());
if (item->checkState() == Qt::Unchecked) { if (item->checkState() == Qt::Unchecked) {
screenCount--; screenCount--;
m_action.typeScreenNames().removeLast(); m_action.removeScreen(item->text());
} }
} }
if (screenCount == ui->listScreens->count()) if (screenCount == ui->listScreens->count())
m_action.typeScreenNames().clear(); m_action.clearScreens();
m_action.setHaveScreens(screenCount); m_action.setHaveScreens(screenCount);