GH-2059 fix instance directory not being created on first launch
This commit is contained in:
		| @@ -34,12 +34,13 @@ struct WatchLock | ||||
| FolderInstanceProvider::FolderInstanceProvider(SettingsObjectPtr settings, const QString& instDir) | ||||
| 	: BaseInstanceProvider(settings) | ||||
| { | ||||
| 	// Normalize path | ||||
| 	m_instDir = QDir(instDir).canonicalPath(); | ||||
| 	if (!QDir::current().exists(m_instDir)) | ||||
| 	// Create aand normalize path | ||||
| 	if (!QDir::current().exists(instDir)) | ||||
| 	{ | ||||
| 		QDir::current().mkpath(m_instDir); | ||||
| 		QDir::current().mkpath(instDir); | ||||
| 	} | ||||
| 	// NOTE: canonicalPath requires the path to exist. Do not move this above the creation block! | ||||
| 	m_instDir = QDir(instDir).canonicalPath(); | ||||
| 	m_watcher = new QFileSystemWatcher(this); | ||||
| 	connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, &FolderInstanceProvider::instanceDirContentsChanged); | ||||
| 	m_watcher->addPath(m_instDir); | ||||
|   | ||||
| @@ -26,10 +26,9 @@ | ||||
|  | ||||
| #include "FolderInstanceProvider.h" | ||||
|  | ||||
| InstanceList::InstanceList(SettingsObjectPtr globalSettings, const QString &instDir, QObject *parent) | ||||
| 	: QAbstractListModel(parent), m_instDir(instDir) | ||||
| InstanceList::InstanceList(QObject *parent) | ||||
| 	: QAbstractListModel(parent) | ||||
| { | ||||
| 	m_globalSettings = globalSettings; | ||||
| 	resumeWatch(); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -27,16 +27,14 @@ | ||||
|  | ||||
| #include "QObjectPtr.h" | ||||
|  | ||||
| class QFileSystemWatcher; | ||||
| class BaseInstance; | ||||
| class QDir; | ||||
|  | ||||
| class MULTIMC_LOGIC_EXPORT InstanceList : public QAbstractListModel | ||||
| { | ||||
| 	Q_OBJECT | ||||
|  | ||||
| public: | ||||
| 	explicit InstanceList(SettingsObjectPtr globalSettings, const QString &instDir, QObject *parent = 0); | ||||
| 	explicit InstanceList(QObject *parent = 0); | ||||
| 	virtual ~InstanceList(); | ||||
|  | ||||
| public: | ||||
| @@ -101,9 +99,7 @@ private: | ||||
| protected: | ||||
| 	int m_watchLevel = 0; | ||||
| 	QSet<BaseInstanceProvider *> m_updatedProviders; | ||||
| 	QString m_instDir; | ||||
| 	QList<InstancePtr> m_instances; | ||||
| 	QSet<QString> m_groups; | ||||
| 	SettingsObjectPtr m_globalSettings; | ||||
| 	QVector<shared_qobject_ptr<BaseInstanceProvider>> m_providers; | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user