diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index da9ea779e..e1d306b03 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -1630,6 +1630,7 @@ void MainWindow::instanceChanged(const QModelIndex ¤t, const QModelIndex & ui->instanceToolBar->setEnabled(true); ui->actionLaunchInstance->setEnabled(m_selectedInstance->canLaunch()); ui->actionLaunchInstanceOffline->setEnabled(m_selectedInstance->canLaunch()); + ui->actionExportInstance->setEnabled(m_selectedInstance->canExport()); renameButton->setText(m_selectedInstance->name()); m_statusLeft->setText(m_selectedInstance->getStatusbarDescription()); updateInstanceToolIcon(m_selectedInstance->iconKey()); diff --git a/logic/BaseInstance.h b/logic/BaseInstance.h index 392cb3d99..5e587c483 100644 --- a/logic/BaseInstance.h +++ b/logic/BaseInstance.h @@ -206,6 +206,7 @@ public: void unsetFlag(const InstanceFlag flag); bool canLaunch() const; + virtual bool canExport() const = 0; virtual bool reload(); diff --git a/logic/NullInstance.h b/logic/NullInstance.h index d46230f47..fbb2d9854 100644 --- a/logic/NullInstance.h +++ b/logic/NullInstance.h @@ -83,4 +83,8 @@ public: { return "Null"; } + bool canExport() const override + { + return false; + } }; diff --git a/logic/minecraft/ftb/LegacyFTBInstance.h b/logic/minecraft/ftb/LegacyFTBInstance.h index 3f3f5edf5..7178bca46 100644 --- a/logic/minecraft/ftb/LegacyFTBInstance.h +++ b/logic/minecraft/ftb/LegacyFTBInstance.h @@ -10,4 +10,8 @@ public: virtual QString id() const; virtual void copy(const QDir &newDir); virtual QString typeName() const; + bool canExport() const override + { + return false; + } }; diff --git a/logic/minecraft/ftb/OneSixFTBInstance.h b/logic/minecraft/ftb/OneSixFTBInstance.h index 09a2dcb06..e7f8f4859 100644 --- a/logic/minecraft/ftb/OneSixFTBInstance.h +++ b/logic/minecraft/ftb/OneSixFTBInstance.h @@ -21,7 +21,10 @@ public: QDir versionsPath() const override; bool providesVersionFile() const override; virtual QString typeName() const override; - + bool canExport() const override + { + return false; + } private: SettingsObjectPtr m_globalSettings; }; diff --git a/logic/minecraft/legacy/LegacyInstance.h b/logic/minecraft/legacy/LegacyInstance.h index d88e2a718..3bef240da 100644 --- a/logic/minecraft/legacy/LegacyInstance.h +++ b/logic/minecraft/legacy/LegacyInstance.h @@ -124,6 +124,11 @@ public: virtual QString typeName() const override; + bool canExport() const override + { + return true; + } + protected: mutable std::shared_ptr jar_mod_list; mutable std::shared_ptr core_mod_list; diff --git a/logic/minecraft/onesix/OneSixInstance.h b/logic/minecraft/onesix/OneSixInstance.h index 0a92ab2f2..2dfab48c2 100644 --- a/logic/minecraft/onesix/OneSixInstance.h +++ b/logic/minecraft/onesix/OneSixInstance.h @@ -94,6 +94,11 @@ public: virtual QString typeName() const override; + bool canExport() const override + { + return true; + } + signals: void versionReloaded();