summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modlist.cpp12
-rw-r--r--src/modlist.h3
-rw-r--r--src/modlistproxy.cpp5
-rw-r--r--src/modlistproxy.h1
-rw-r--r--src/organizercore.cpp11
-rw-r--r--src/organizercore.h1
-rw-r--r--src/organizerproxy.cpp5
-rw-r--r--src/organizerproxy.h1
8 files changed, 21 insertions, 18 deletions
diff --git a/src/modlist.cpp b/src/modlist.cpp
index 94c8883d..40a9af5e 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -939,6 +939,18 @@ QStringList ModList::allModsByProfilePriority(MOBase::IProfile* profile) const
return m_Organizer->modsSortedByProfilePriority(mo2Profile);
}
+bool ModList::removeMod(MOBase::IModInterface* mod)
+{
+ unsigned int index = ModInfo::getIndex(mod->name());
+ if (index == UINT_MAX) {
+ return mod->remove();
+ }
+ else {
+ return ModInfo::removeMod(index);
+ }
+ notifyModRemoved(mod->name());
+}
+
IModList::ModStates ModList::state(const QString &name) const
{
unsigned int modIndex = ModInfo::getIndex(name);
diff --git a/src/modlist.h b/src/modlist.h
index 8748cb30..810b0efd 100644
--- a/src/modlist.h
+++ b/src/modlist.h
@@ -159,6 +159,9 @@ public:
virtual QStringList allMods() const override;
virtual QStringList allModsByProfilePriority(MOBase::IProfile* profile = nullptr) const override;
+ // \copydoc MOBase::IModList::remove
+ bool removeMod(MOBase::IModInterface* mod) override;
+
/// \copydoc MOBase::IModList::state
virtual ModStates state(const QString &name) const override;
diff --git a/src/modlistproxy.cpp b/src/modlistproxy.cpp
index 51cea1ee..660e4b9d 100644
--- a/src/modlistproxy.cpp
+++ b/src/modlistproxy.cpp
@@ -22,6 +22,11 @@ QStringList ModListProxy::allModsByProfilePriority(MOBase::IProfile* profile) co
return m_Proxied->allModsByProfilePriority(profile);
}
+bool ModListProxy::removeMod(MOBase::IModInterface* mod)
+{
+ return m_Proxied->removeMod(mod);
+}
+
IModList::ModStates ModListProxy::state(const QString& name) const
{
return m_Proxied->state(name);
diff --git a/src/modlistproxy.h b/src/modlistproxy.h
index 2e653850..486564a4 100644
--- a/src/modlistproxy.h
+++ b/src/modlistproxy.h
@@ -16,6 +16,7 @@ public:
QString displayName(const QString& internalName) const override;
QStringList allMods() const override;
QStringList allModsByProfilePriority(MOBase::IProfile* profile = nullptr) const override;
+ bool removeMod(MOBase::IModInterface* mod) override;
ModStates state(const QString& name) const override;
bool setActive(const QString& name, bool active) override;
int setActive(const QStringList& names, bool active) override;
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index a66a6450..76d53791 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -665,17 +665,6 @@ MOBase::IModInterface *OrganizerCore::createMod(GuessedValue<QString> &name)
.data();
}
-bool OrganizerCore::removeMod(MOBase::IModInterface *mod)
-{
- unsigned int index = ModInfo::getIndex(mod->name());
- if (index == UINT_MAX) {
- return mod->remove();
- } else {
- return ModInfo::removeMod(index);
- }
- m_ModList.notifyModRemoved(mod->name());
-}
-
void OrganizerCore::modDataChanged(MOBase::IModInterface *)
{
refresh(false);
diff --git a/src/organizercore.h b/src/organizercore.h
index 95c7ef51..50d44c49 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -310,7 +310,6 @@ public:
MOBase::IModInterface *getMod(const QString &name) const;
MOBase::IPluginGame *getGame(const QString &gameName) const;
MOBase::IModInterface *createMod(MOBase::GuessedValue<QString> &name);
- bool removeMod(MOBase::IModInterface *mod);
void modDataChanged(MOBase::IModInterface *mod);
QVariant pluginSetting(const QString &pluginName, const QString &key) const;
void setPluginSetting(const QString &pluginName, const QString &key, const QVariant &value);
diff --git a/src/organizerproxy.cpp b/src/organizerproxy.cpp
index e369c1a3..cb9e0e1d 100644
--- a/src/organizerproxy.cpp
+++ b/src/organizerproxy.cpp
@@ -82,11 +82,6 @@ IModInterface *OrganizerProxy::createMod(MOBase::GuessedValue<QString> &name)
return m_Proxied->createMod(name);
}
-bool OrganizerProxy::removeMod(IModInterface *mod)
-{
- return m_Proxied->removeMod(mod);
-}
-
void OrganizerProxy::modDataChanged(IModInterface *mod)
{
m_Proxied->modDataChanged(mod);
diff --git a/src/organizerproxy.h b/src/organizerproxy.h
index a72d01b3..16ae21eb 100644
--- a/src/organizerproxy.h
+++ b/src/organizerproxy.h
@@ -35,7 +35,6 @@ public:
virtual MOBase::IModInterface *getMod(const QString &name) const;
virtual MOBase::IPluginGame *getGame(const QString &gameName) const;
virtual MOBase::IModInterface *createMod(MOBase::GuessedValue<QString> &name);
- virtual bool removeMod(MOBase::IModInterface *mod);
virtual void modDataChanged(MOBase::IModInterface *mod);
virtual QVariant pluginSetting(const QString &pluginName, const QString &key) const;
virtual void setPluginSetting(const QString &pluginName, const QString &key, const QVariant &value);