From 356d17b2ea70d9bfdc36d8199e12eb21cd3d4669 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Sat, 31 Oct 2020 16:08:05 -0400 Subject: fixes after rebasing --- src/mainwindow.cpp | 2 +- src/modinfo.cpp | 2 +- src/modinfo.h | 2 +- src/modinfodialogconflicts.cpp | 14 +++---- src/modlist.cpp | 48 +++++++++++++++++----- src/modlist.h | 8 +++- src/organizerproxy.cpp | 36 +++++++---------- src/organizerproxy.h | 91 ++++++++++++++++++++---------------------- src/pluginlist.cpp | 9 ++++- src/pluginlist.h | 3 +- src/thread_utils.h | 5 +-- 11 files changed, 126 insertions(+), 94 deletions(-) (limited to 'src') 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 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 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 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 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 modIndices) const +void ModList::notifyModStateChanged(QList modIndices) const { std::map 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&) +{ + return true; +} + +bool DummyModList::onModRemoved(const std::function&) { return true; } -bool DummyModList::onModStateChanged(const std::function &func) +bool DummyModList::onModStateChanged(const std::function&)>&) { return true; } -bool DummyModList::onModMoved(const std::function &func) +bool DummyModList::onModMoved(const std::function&) { 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 &func) override; + bool onModInstalled(const std::function& func) override; + bool onModRemoved(const std::function& func) override; + bool onModStateChanged(const std::function&)> &func) override; bool onModMoved(const std::function &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 &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 &func) +bool DummyOrganizerProxy::onUserInterfaceInitialized(std::function const& func) { return true; } -bool DummyOrganizerProxy::onUserInterfaceInitialized(std::function const& func) +bool DummyOrganizerProxy::onProfileCreated(std::function const& func) +{ + return true; +} + +bool DummyOrganizerProxy::onProfileRenamed(std::function const& func) +{ + return true; +} + +bool DummyOrganizerProxy::onProfileRemoved(std::function const& func) { return true; } @@ -431,7 +430,7 @@ bool DummyOrganizerProxy::onPluginSettingChanged(std::function &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 &filter) const override; - virtual QStringList findFiles(const QString &path, const QStringList &globFilters) const override; - virtual QStringList getFileOrigins(const QString &fileName) const; - virtual QList findFileInfos(const QString &path, const std::function &filter) const; - - 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 &func); - virtual bool onFinishedRun(const std::function &func); - virtual bool onModInstalled(const std::function &func); - virtual bool onUserInterfaceInitialized(std::function const& func); - virtual bool onProfileChanged(std::function const& func); - virtual bool onPluginSettingChanged(std::function const& func); - - virtual MOBase::IPluginGame const *managedGame() const; - - virtual QStringList modsSortedByProfilePriority() 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 &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 &filter) const override; + QStringList findFiles(const QString &path, const QStringList &globFilters) const override; + QStringList getFileOrigins(const QString &fileName) const override; + QList findFileInfos(const QString &path, const std::function &filter) const override; + + 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; + + bool onAboutToRun(const std::function &func) override; + bool onFinishedRun(const std::function &func) override; + bool onUserInterfaceInitialized(std::function const& func) override; + bool onProfileCreated(std::function const& func) override; + bool onProfileRenamed(std::function const& func) override; + bool onProfileRemoved(std::function const& func) override; + bool onProfileChanged(std::function const& func) override; + bool onPluginSettingChanged(std::function const& func) override; + + MOBase::IPluginGame const *managedGame() const override; private: - const QString &m_PluginName; std::unique_ptr m_plugins; std::unique_ptr 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 &func) +bool DummyPluginList::onPluginStateChanged(const std::function&)> &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 &callback) override; bool onPluginMoved(const std::function &func) override; - bool onPluginStateChanged(const std::function &func) override; + bool onPluginStateChanged(const std::function&)> &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 // in main.cpp -void setUnhandledExceptionHandler(); -LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS *exceptionPtrs); +void setExceptionHandlers(); namespace MOShared { @@ -20,7 +19,7 @@ template std::thread startSafeThread(F&& f) { return std::thread([f=std::forward(f)] { - setUnhandledExceptionHandler(); + setExceptionHandlers(); f(); }); } -- cgit v1.3.1