diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2020-10-31 16:08:05 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2020-11-03 11:41:53 -0500 |
| commit | 356d17b2ea70d9bfdc36d8199e12eb21cd3d4669 (patch) | |
| tree | 983e62821e1f9ebc0c2af578ce5c91c80a48dc91 | |
| parent | 4c5e3da2334a1d0c474148be8881b46d6ca6d3fa (diff) | |
fixes after rebasing
| -rw-r--r-- | src/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/modinfo.cpp | 2 | ||||
| -rw-r--r-- | src/modinfo.h | 2 | ||||
| -rw-r--r-- | src/modinfodialogconflicts.cpp | 14 | ||||
| -rw-r--r-- | src/modlist.cpp | 48 | ||||
| -rw-r--r-- | src/modlist.h | 8 | ||||
| -rw-r--r-- | src/organizerproxy.cpp | 36 | ||||
| -rw-r--r-- | src/organizerproxy.h | 85 | ||||
| -rw-r--r-- | src/pluginlist.cpp | 9 | ||||
| -rw-r--r-- | src/pluginlist.h | 3 | ||||
| -rw-r--r-- | src/thread_utils.h | 5 |
11 files changed, 123 insertions, 91 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9ad51510..6a648512 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4221,7 +4221,7 @@ void MainWindow::checkModsForUpdates() { bool checkingModsForUpdate = false; if (NexusInterface::instance().getAccessManager()->validated()) { - checkingModsForUpdate = ModInfo::checkAllForUpdate(this); + checkingModsForUpdate = ModInfo::checkAllForUpdate(&m_PluginContainer, this); NexusInterface::instance().requestEndorsementInfo(this, QVariant(), QString()); NexusInterface::instance().requestTrackingInfo(this, QVariant(), QString()); } else { diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 04cb18ce..a0382fe8 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -295,7 +295,7 @@ ModInfo::ModInfo(PluginContainer *pluginContainer) } -bool ModInfo::checkAllForUpdate(QObject *receiver) +bool ModInfo::checkAllForUpdate(PluginContainer *pluginContainer, QObject *receiver) { bool updatesAvailable = true; diff --git a/src/modinfo.h b/src/modinfo.h index 480fe013..e5e46741 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -197,7 +197,7 @@ public: // Static functions: * * @return true if any mods are checked for update. */ - static bool checkAllForUpdate(QObject *receiver); + static bool checkAllForUpdate(PluginContainer *pluginContainer, QObject *receiver); /** * diff --git a/src/modinfodialogconflicts.cpp b/src/modinfodialogconflicts.cpp index 0103b58a..cf7f6340 100644 --- a/src/modinfodialogconflicts.cpp +++ b/src/modinfodialogconflicts.cpp @@ -1001,7 +1001,7 @@ std::optional<ConflictItem> AdvancedConflictsTab::createItem( if (currOrigin->getID() == fileOrigin) { // current origin is the active winner, all alternatives go in 'before' - + if (showAllAlts) { for (const auto& alt : alternatives) { @@ -1023,7 +1023,7 @@ std::optional<ConflictItem> AdvancedConflictsTab::createItem( } else { // current mod is one of the alternatives, find its position - + auto currOrgId = currOrigin->getID(); auto currModIter = std::find_if(alternatives.begin(), alternatives.end(), @@ -1037,14 +1037,14 @@ std::optional<ConflictItem> AdvancedConflictsTab::createItem( } isCurrOrigArchive = currModIter->isFromArchive(); - + if (showAllAlts) { // fills 'before' and 'after' with all the alternatives that come - // before and after the current mod, trusting the alternatives vector to be + // before and after the current mod, trusting the alternatives vector to be // already sorted correctly - + for (auto iter = alternatives.begin(); iter != alternatives.end(); iter++) { - + const auto& altOrigin = ds.getOriginByID(iter->originID()); if (iter < currModIter) { @@ -1094,7 +1094,7 @@ std::optional<ConflictItem> AdvancedConflictsTab::createItem( after += ds.getOriginByID(fileOrigin).getName(); } - + } } } diff --git a/src/modlist.cpp b/src/modlist.cpp index bf9aef83..c98464a9 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -977,7 +977,7 @@ int ModList::setActive(const QStringList& names, bool active) { indices.append(modIndex); } else { - log::debug("Trying to {} mod {} which does not exist.", + log::debug("Trying to {} mod {} which does not exist.", active ? "enable" : "disable", name); } } @@ -1043,7 +1043,7 @@ void ModList::notifyModRemoved(QString const& modName) const m_ModRemoved(modName); } -void ModList::notifyModStateChanged(QList<unsigned int> modIndices) const +void ModList::notifyModStateChanged(QList<unsigned int> modIndices) const { std::map<QString, ModStates> mods; for (auto modIndex : modIndices) { @@ -1530,7 +1530,7 @@ void ModList::disableSelected(const QItemSelectionModel *selectionModel) } -QString DummyModList::displayName(const QString &internalName) const +QString DummyModList::displayName(const QString&) const { return {}; } @@ -1540,32 +1540,62 @@ QStringList DummyModList::allMods() const return {}; } -IModList::ModStates DummyModList::state(const QString &name) const +QStringList DummyModList::allModsByProfilePriority(MOBase::IProfile*) const +{ + return {}; +} + +IModInterface* DummyModList::getMod(const QString&) const +{ + return nullptr; +} + +bool DummyModList::removeMod(MOBase::IModInterface*) +{ + return true; +} + +IModList::ModStates DummyModList::state(const QString&) const { return 0; } -bool DummyModList::setActive(const QString &name, bool active) +bool DummyModList::setActive(const QString&, bool) { return true; } -int DummyModList::priority(const QString &name) const +int DummyModList::setActive(const QStringList&, bool) +{ + return 0; +} + +int DummyModList::priority(const QString&) const { return -1; } -bool DummyModList::setPriority(const QString &name, int newPriority) +bool DummyModList::setPriority(const QString&, int) +{ + return true; +} + +bool DummyModList::onModInstalled(const std::function<void(IModInterface *)>&) +{ + return true; +} + +bool DummyModList::onModRemoved(const std::function<void(QString const&)>&) { return true; } -bool DummyModList::onModStateChanged(const std::function<void(const QString&, ModStates)> &func) +bool DummyModList::onModStateChanged(const std::function<void(const std::map<QString, ModStates>&)>&) { return true; } -bool DummyModList::onModMoved(const std::function<void (const QString &, int, int)> &func) +bool DummyModList::onModMoved(const std::function<void (const QString &, int, int)>&) { return true; } diff --git a/src/modlist.h b/src/modlist.h index 3ab486c9..1a469ee7 100644 --- a/src/modlist.h +++ b/src/modlist.h @@ -403,11 +403,17 @@ class DummyModList : public MOBase::IModList public:
QString displayName(const QString &internalName) const override;
QStringList allMods() const override;
+ QStringList allModsByProfilePriority(MOBase::IProfile *profile = nullptr) const override;
+ MOBase::IModInterface* getMod(const QString& name) 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;
int priority(const QString &name) const override;
bool setPriority(const QString &name, int newPriority) override;
- bool onModStateChanged(const std::function<void(const QString&, ModStates)> &func) override;
+ bool onModInstalled(const std::function<void(MOBase::IModInterface *)>& func) override;
+ bool onModRemoved(const std::function<void(QString const&)>& func) override;
+ bool onModStateChanged(const std::function<void(const std::map<QString, ModStates>&)> &func) override;
bool onModMoved(const std::function<void (const QString &, int, int)> &func) override;
};
diff --git a/src/organizerproxy.cpp b/src/organizerproxy.cpp index 8cc95a8b..b2a4f791 100644 --- a/src/organizerproxy.cpp +++ b/src/organizerproxy.cpp @@ -290,9 +290,8 @@ bool OrganizerProxy::onPluginSettingChanged(std::function<void(QString const&, c -DummyOrganizerProxy::DummyOrganizerProxy(const QString &pluginName) :
- m_PluginName(pluginName),
- m_mods(new DummyModList), m_plugins(new DummyPluginList)
+DummyOrganizerProxy::DummyOrganizerProxy(MOBase::IPlugin* plugin)
+ : m_mods(new DummyModList), m_plugins(new DummyPluginList)
{
}
@@ -338,11 +337,6 @@ VersionInfo DummyOrganizerProxy::appVersion() const return {};
}
-IModInterface *DummyOrganizerProxy::getMod(const QString &name) const
-{
- return nullptr;
-}
-
IPluginGame *DummyOrganizerProxy::getGame(const QString &gameName) const
{
return nullptr;
@@ -353,11 +347,6 @@ IModInterface *DummyOrganizerProxy::createMod(MOBase::GuessedValue<QString> &nam return nullptr;
}
-bool DummyOrganizerProxy::removeMod(IModInterface *mod)
-{
- return true;
-}
-
void DummyOrganizerProxy::modDataChanged(IModInterface *mod)
{
}
@@ -411,12 +400,22 @@ bool DummyOrganizerProxy::onFinishedRun(const std::function<void (const QString return true;
}
-bool DummyOrganizerProxy::onModInstalled(const std::function<void (const QString &)> &func)
+bool DummyOrganizerProxy::onUserInterfaceInitialized(std::function<void(QMainWindow*)> const& func)
{
return true;
}
-bool DummyOrganizerProxy::onUserInterfaceInitialized(std::function<void(QMainWindow*)> const& func)
+bool DummyOrganizerProxy::onProfileCreated(std::function<void(MOBase::IProfile*)> const& func)
+{
+ return true;
+}
+
+bool DummyOrganizerProxy::onProfileRenamed(std::function<void(MOBase::IProfile*, QString const&, QString const&)> const& func)
+{
+ return true;
+}
+
+bool DummyOrganizerProxy::onProfileRemoved(std::function<void(QString const&)> const& func)
{
return true;
}
@@ -431,7 +430,7 @@ bool DummyOrganizerProxy::onPluginSettingChanged(std::function<void(QString cons return true;
}
-void DummyOrganizerProxy::refreshModList(bool saveChanges)
+void DummyOrganizerProxy::refresh(bool saveChanges)
{
}
@@ -494,8 +493,3 @@ MOBase::IPluginGame const *DummyOrganizerProxy::managedGame() const {
return nullptr;
}
-
-QStringList DummyOrganizerProxy::modsSortedByProfilePriority() const
-{
- return {};
-}
diff --git a/src/organizerproxy.h b/src/organizerproxy.h index 3bd70113..144a7732 100644 --- a/src/organizerproxy.h +++ b/src/organizerproxy.h @@ -85,57 +85,54 @@ private: class DummyOrganizerProxy : public MOBase::IOrganizer
{
public:
- DummyOrganizerProxy(const QString &pluginName);
+ DummyOrganizerProxy(MOBase::IPlugin* plugin);
~DummyOrganizerProxy();
- virtual MOBase::IModRepositoryBridge *createNexusBridge() const;
- virtual QString profileName() const;
- virtual QString profilePath() const;
- virtual QString downloadsPath() const;
- virtual QString overwritePath() const;
- virtual QString basePath() const;
- virtual QString modsPath() const;
- virtual MOBase::VersionInfo appVersion() const;
- 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);
- virtual QVariant persistent(const QString &pluginName, const QString &key, const QVariant &def = QVariant()) const;
- virtual void setPersistent(const QString &pluginName, const QString &key, const QVariant &value, bool sync = true);
- virtual QString pluginDataPath() const;
- virtual MOBase::IModInterface *installMod(const QString &fileName, const QString &nameSuggestion = QString());
- virtual QString resolvePath(const QString &fileName) const;
- virtual QStringList listDirectories(const QString &directoryName) const;
- virtual QStringList findFiles(const QString &path, const std::function<bool(const QString &)> &filter) const override;
- virtual QStringList findFiles(const QString &path, const QStringList &globFilters) const override;
- virtual QStringList getFileOrigins(const QString &fileName) const;
- virtual QList<FileInfo> findFileInfos(const QString &path, const std::function<bool(const FileInfo&)> &filter) const;
+ MOBase::IModRepositoryBridge *createNexusBridge() const override;
+ QString profileName() const override;
+ QString profilePath() const override;
+ QString downloadsPath() const override;
+ QString overwritePath() const override;
+ QString basePath() const override;
+ QString modsPath() const override;
+ MOBase::VersionInfo appVersion() const override;
+ MOBase::IPluginGame *getGame(const QString &gameName) const override;
+ MOBase::IModInterface *createMod(MOBase::GuessedValue<QString> &name) override;
+ void modDataChanged(MOBase::IModInterface *mod) override;
+ QVariant pluginSetting(const QString &pluginName, const QString &key) const override;
+ void setPluginSetting(const QString &pluginName, const QString &key, const QVariant &value) override;
+ QVariant persistent(const QString &pluginName, const QString &key, const QVariant &def = QVariant()) const override;
+ void setPersistent(const QString &pluginName, const QString &key, const QVariant &value, bool sync = true) override;
+ QString pluginDataPath() const override;
+ MOBase::IModInterface *installMod(const QString &fileName, const QString &nameSuggestion = QString()) override;
+ QString resolvePath(const QString &fileName) const override;
+ QStringList listDirectories(const QString &directoryName) const override;
+ QStringList findFiles(const QString &path, const std::function<bool(const QString &)> &filter) const override;
+ QStringList findFiles(const QString &path, const QStringList &globFilters) const override;
+ QStringList getFileOrigins(const QString &fileName) const override;
+ QList<FileInfo> findFileInfos(const QString &path, const std::function<bool(const FileInfo&)> &filter) const override;
- virtual MOBase::IDownloadManager *downloadManager() const;
- virtual MOBase::IPluginList *pluginList() const;
- virtual MOBase::IModList *modList() const;
- virtual MOBase::IProfile *profile() const override;
- virtual HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "",
- const QString &profile = "", const QString &forcedCustomOverwrite = "", bool ignoreCustomOverwrite = false);
- virtual bool waitForApplication(HANDLE handle, LPDWORD exitCode = nullptr) const;
- virtual void refreshModList(bool saveChanges);
-
- virtual bool onAboutToRun(const std::function<bool(const QString&)> &func);
- virtual bool onFinishedRun(const std::function<void (const QString&, unsigned int)> &func);
- virtual bool onModInstalled(const std::function<void (const QString&)> &func);
- virtual bool onUserInterfaceInitialized(std::function<void(QMainWindow*)> const& func);
- virtual bool onProfileChanged(std::function<void(MOBase::IProfile*, MOBase::IProfile*)> const& func);
- virtual bool onPluginSettingChanged(std::function<void(QString const&, const QString& key, const QVariant&, const QVariant&)> const& func);
+ MOBase::IDownloadManager *downloadManager() const override;
+ MOBase::IPluginList *pluginList() const override;
+ MOBase::IModList *modList() const override;
+ MOBase::IProfile *profile() const override;
+ HANDLE startApplication(const QString &executable, const QStringList &args = QStringList(), const QString &cwd = "",
+ const QString &profile = "", const QString &forcedCustomOverwrite = "", bool ignoreCustomOverwrite = false) override;
+ bool waitForApplication(HANDLE handle, LPDWORD exitCode = nullptr) const override;
+ void refresh(bool saveChanges = true) override;
- virtual MOBase::IPluginGame const *managedGame() const;
+ bool onAboutToRun(const std::function<bool(const QString&)> &func) override;
+ bool onFinishedRun(const std::function<void (const QString&, unsigned int)> &func) override;
+ bool onUserInterfaceInitialized(std::function<void(QMainWindow*)> const& func) override;
+ bool onProfileCreated(std::function<void(MOBase::IProfile*)> const& func) override;
+ bool onProfileRenamed(std::function<void(MOBase::IProfile*, QString const&, QString const&)> const& func) override;
+ bool onProfileRemoved(std::function<void(QString const&)> const& func) override;
+ bool onProfileChanged(std::function<void(MOBase::IProfile*, MOBase::IProfile*)> const& func) override;
+ bool onPluginSettingChanged(std::function<void(QString const&, const QString& key, const QVariant&, const QVariant&)> const& func) override;
- virtual QStringList modsSortedByProfilePriority() const;
+ MOBase::IPluginGame const *managedGame() const override;
private:
- const QString &m_PluginName;
std::unique_ptr<MOBase::IPluginList> m_plugins;
std::unique_ptr<MOBase::IModList> m_mods;
};
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 7134d246..bda360ba 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -801,7 +801,7 @@ bool PluginList::setPriority(const QString& name, int newPriority) { int rowIndex = findPluginByPriority(oldPriority);
- // We need to increment newPriority if its above the old one, otherwise the
+ // We need to increment newPriority if its above the old one, otherwise the
// plugin is place right below the new priority.
if (oldPriority < newPriority) {
newPriority += 1;
@@ -1702,6 +1702,11 @@ void DummyPluginList::setLoadOrder(const QStringList &pluginList) {
}
+bool DummyPluginList::setPriority(const QString&, int)
+{
+ return true;
+}
+
bool DummyPluginList::isMaster(const QString &name) const
{
return false;
@@ -1727,7 +1732,7 @@ bool DummyPluginList::onPluginMoved(const std::function<void (const QString &, i return true;
}
-bool DummyPluginList::onPluginStateChanged(const std::function<void (const QString &, PluginStates)> &func)
+bool DummyPluginList::onPluginStateChanged(const std::function<void (const std::map<QString, PluginStates>&)> &func)
{
return true;
}
diff --git a/src/pluginlist.h b/src/pluginlist.h index bfadaf4f..27c15056 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -420,12 +420,13 @@ public: int priority(const QString &name) const override;
int loadOrder(const QString &name) const override;
void setLoadOrder(const QStringList &pluginList) override;
+ bool setPriority(const QString& name, int newPriority) override;
bool isMaster(const QString &name) const override;
QStringList masters(const QString &name) const override;
QString origin(const QString &name) const override;
bool onRefreshed(const std::function<void()> &callback) override;
bool onPluginMoved(const std::function<void (const QString &, int, int)> &func) override;
- bool onPluginStateChanged(const std::function<void (const QString &, PluginStates)> &func) override;
+ bool onPluginStateChanged(const std::function<void (const std::map<QString, PluginStates>&)> &func) override;
};
#pragma warning(pop)
diff --git a/src/thread_utils.h b/src/thread_utils.h index 607d73a9..f64dd601 100644 --- a/src/thread_utils.h +++ b/src/thread_utils.h @@ -7,8 +7,7 @@ #include <thread> // in main.cpp -void setUnhandledExceptionHandler(); -LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS *exceptionPtrs); +void setExceptionHandlers(); namespace MOShared { @@ -20,7 +19,7 @@ template <class F> std::thread startSafeThread(F&& f) { return std::thread([f=std::forward<F>(f)] { - setUnhandledExceptionHandler(); + setExceptionHandlers(); f(); }); } |
