From 755698f1adceef55f52c8e44c9746537885c9bf7 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Thu, 12 Mar 2026 07:08:09 -0500 Subject: Replace Python plugins with native C++ .so, remove bundled Python (~95MB) - Add native plugins: form43_checker, script_extender_checker, preview_dds, basic_games (75 game defs via IPluginProxy pattern with Steam/GOG detection) - Remove portable Python from Dockerfile and build-inner.sh - Add Python settings tab with venv support (system python3 + PyQt6) - Skip loading plugin_python.so when Python disabled (default: off) - Update pythonrunner.cpp to use venv at ~/.local/share/fluorine/python-venv/ - Preserve real file permissions in FUSE VFS (fixes native executable +x bits) - Add FUSE_SET_ATTR_MODE handler so chmod works through VFS - Fix desktop shortcut Exec= to use fluorine-manager launcher, not bare binary Co-Authored-By: Claude Opus 4.6 --- libs/form43_checker_native/src/form43checker.h | 53 ++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 libs/form43_checker_native/src/form43checker.h (limited to 'libs/form43_checker_native/src/form43checker.h') diff --git a/libs/form43_checker_native/src/form43checker.h b/libs/form43_checker_native/src/form43checker.h new file mode 100644 index 0000000..583c7fa --- /dev/null +++ b/libs/form43_checker_native/src/form43checker.h @@ -0,0 +1,53 @@ +#ifndef FORM43CHECKER_H +#define FORM43CHECKER_H + +#include + +#include +#include + +#include +#include +#include + +class Form43Checker : public QObject, + public MOBase::IPlugin, + public MOBase::IPluginDiagnose +{ + Q_OBJECT + Q_INTERFACES(MOBase::IPlugin MOBase::IPluginDiagnose) + Q_PLUGIN_METADATA(IID "org.tannin.Form43CheckerNative") + +public: + Form43Checker(); + +public: // IPlugin + bool init(MOBase::IOrganizer* moInfo) override; + QString name() const override; + QString localizedName() const override; + QString author() const override; + QString description() const override; + MOBase::VersionInfo version() const override; + std::vector> + requirements() const override; + QList settings() const override; + +public: // IPluginDiagnose + std::vector activeProblems() const override; + QString shortDescription(unsigned int key) const override; + QString fullDescription(unsigned int key) const override; + bool hasGuidedFix(unsigned int key) const override; + void startGuidedFix(unsigned int key) const override; + +private: + static const unsigned int PROBLEM_FORM43 = 0; + + void updateInvalidPlugins() const; + int getFormVersion(const QString& file) const; + QStringList listPlugins() const; + + MOBase::IOrganizer* m_organizer; + mutable QStringList m_invalidPlugins; +}; + +#endif // FORM43CHECKER_H -- cgit v1.3.1