#ifndef SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_H #define SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_H #include #include #include class ConfigManager; class FilePath; class ProjectSettings; class SourceGroupSettingsWithSourceExtensions { public: SourceGroupSettingsWithSourceExtensions(); virtual ~SourceGroupSettingsWithSourceExtensions() = default; bool equals(std::shared_ptr other) const; std::vector getSourceExtensions() const; void setSourceExtensions(const std::vector& sourceExtensions); protected: void load(std::shared_ptr config, const std::string& key); void save(std::shared_ptr config, const std::string& key); private: virtual const ProjectSettings* getProjectSettings() const = 0; virtual std::vector getDefaultSourceExtensions() const = 0; std::vector m_sourceExtensions; }; #endif // SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_H