diff options
Diffstat (limited to 'src/organizercore.h')
| -rw-r--r-- | src/organizercore.h | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/src/organizercore.h b/src/organizercore.h index 28fc14ca..e994d9b1 100644 --- a/src/organizercore.h +++ b/src/organizercore.h @@ -12,6 +12,8 @@ #include "installationmanager.h"
#include "downloadmanager.h"
#include "executableslist.h"
+#include "usvfsconnector.h"
+#include <directoryentry.h>
#include <imoinfo.h>
#include <iplugindiagnose.h>
#include <versioninfo.h>
@@ -92,7 +94,7 @@ public: void connectPlugins(PluginContainer *container);
void disconnectPlugins();
- void setManagedGame(const MOBase::IPluginGame *game);
+ void setManagedGame(MOBase::IPluginGame *game);
void updateExecutablesList(QSettings &settings);
@@ -134,16 +136,30 @@ public: void doAfterLogin(const std::function<void()> &function) { m_PostLoginTasks.append(function); }
- void spawnBinary(const QFileInfo &binary, const QString &arguments = "", const QDir ¤tDirectory = QDir(), bool closeAfterStart = true, const QString &steamAppID = "");
- HANDLE spawnBinaryDirect(const QFileInfo &binary, const QString &arguments, const QString &profileName, const QDir ¤tDirectory, const QString &steamAppID);
+ void spawnBinary(const QFileInfo &binary, const QString &arguments = "",
+ const QDir ¤tDirectory = QDir(),
+ const QString &steamAppID = "",
+ const QString &customOverwrite = "");
+
+ HANDLE spawnBinaryDirect(const QFileInfo &binary, const QString &arguments,
+ const QString &profileName,
+ const QDir ¤tDirectory,
+ const QString &steamAppID,
+ const QString &customOverwrite);
void loginSuccessfulUpdate(bool necessary);
void loginFailedUpdate(const QString &message);
+ static bool createAndMakeWritable(const QString &path);
+ bool bootstrap();
void createDefaultProfile();
MOBase::DelayedFileWriter &pluginsWriter() { return m_PluginListsWriter; }
+ void prepareVFS();
+
+ void setLogLevel(int logLevel);
+
public:
MOBase::IModRepositoryBridge *createNexusBridge() const;
QString profileName() const;
@@ -176,8 +192,6 @@ public: void refreshModList(bool saveChanges = true);
QStringList modsSortedByProfilePriority() const;
- //std::vector<std::pair<QString, QString> > fileMapping();
-
public: // IPluginDiagnose interface
virtual std::vector<unsigned int> activeProblems() const;
@@ -215,6 +229,8 @@ signals: void managedGameChanged(MOBase::IPluginGame const *gamePlugin);
+ void close();
+
private:
void storeSettings();
@@ -229,11 +245,19 @@ private: bool testForSteam();
- /*
- * std::vector<std::pair<QString, QString>> fileMapping(const QString &dataPath,
- const MOShared::DirectoryEntry *base,
- const MOShared::DirectoryEntry *directoryEntry);
-*/
+ bool createDirectory(const QString &path);
+
+ /**
+ * @brief return a descriptor of the mappings real file->virtual file
+ */
+ std::vector<Mapping> fileMapping(const QString &profile,
+ const QString &customOverwrite);
+
+ std::vector<Mapping>
+ fileMapping(const QString &dataPath, const QString &relPath,
+ const MOShared::DirectoryEntry *base,
+ const MOShared::DirectoryEntry *directoryEntry,
+ int createDestination);
bool waitForProcessCompletion(HANDLE handle, LPDWORD exitCode);
@@ -255,7 +279,7 @@ private: IUserInterface *m_UserInterface;
PluginContainer *m_PluginContainer;
QString m_GameName;
- MOBase::IPluginGame const *m_GamePlugin;
+ MOBase::IPluginGame *m_GamePlugin;
Profile *m_CurrentProfile;
@@ -291,6 +315,7 @@ private: bool m_ArchivesInit;
MOBase::DelayedFileWriter m_PluginListsWriter;
+ UsvfsConnector m_USVFS;
};
|
