aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games_native/src/basicgamesproxy.h
blob: 2c2858f32e7f7c057a503b13e28b3aefa771f39b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef BASICGAMESPROXY_H
#define BASICGAMESPROXY_H

#include <uibase/ipluginproxy.h>

#include <QHash>
#include <QList>
#include <QObject>
#include <QString>

class BasicGamesProxy : public QObject, public MOBase::IPluginProxy
{
  Q_OBJECT
  Q_INTERFACES(MOBase::IPlugin MOBase::IPluginProxy)
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
  Q_PLUGIN_METADATA(IID "com.tannin.ModOrganizer.PluginProxy/1.0")
#endif

public:
  BasicGamesProxy();
  ~BasicGamesProxy() override;

  // IPlugin
  bool init(MOBase::IOrganizer* organizer) override;
  QString name() const override;
  QString author() const override;
  QString description() const override;
  MOBase::VersionInfo version() const override;
  QList<MOBase::PluginSetting> settings() const override;

  // IPluginProxy
  QStringList pluginList(const QDir& pluginPath) const override;
  QList<QObject*> load(const QString& identifier) override;
  void unload(const QString& identifier) override;

private:
  MOBase::IOrganizer* m_organizer = nullptr;
  QHash<QString, QList<QObject*>> m_loaded;
};

#endif  // BASICGAMESPROXY_H