| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | 
							- /*
 
-  * cmodlistview_moc.h, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- #pragma once
 
- #include "../StdInc.h"
 
- #include "../../lib/CConfigHandler.h"
 
- namespace Ui
 
- {
 
- class CModListView;
 
- }
 
- class ModStateController;
 
- class CModList;
 
- class ModStateItemModel;
 
- class ModStateModel;
 
- class CModFilterModel;
 
- class CDownloadManager;
 
- class QTableWidgetItem;
 
- class ModState;
 
- class CModListView : public QWidget
 
- {
 
- 	Q_OBJECT
 
- 	std::shared_ptr<ModStateModel> modStateModel;
 
- 	std::unique_ptr<ModStateController> manager;
 
- 	ModStateItemModel * modModel;
 
- 	CModFilterModel * filterModel;
 
- 	CDownloadManager * dlManager;
 
- 	JsonNode accumulatedRepositoryData;
 
- 	QString activatingPreset;
 
- 	QStringList enqueuedModDownloads;
 
- 	void setupModModel();
 
- 	void setupFilterModel();
 
- 	void setupModsView();
 
- 	void checkManagerErrors();
 
- 	/// replace mod ID's with proper human-readable mod names
 
- 	QStringList getModNames(QString queryingMod, QStringList input);
 
- 	/// returns list of mods that are needed for install of this mod (potentially including this mod itself)
 
- 	QStringList getModsToInstall(QString mod);
 
- 	// find mods unknown to mod list (not present in repo and not installed)
 
- 	QStringList findUnavailableMods(QStringList candidates);
 
- 	void installMods(QStringList archives);
 
- 	void installMaps(QStringList maps);
 
- 	QString genChangelogText(const ModState & mod);
 
- 	QString genModInfoText(const ModState & mod);
 
- 	void changeEvent(QEvent *event) override;
 
- 	auto buttonEnabledState(QString modName, ModState & mod);
 
- public:
 
- 	explicit CModListView(QWidget * parent = nullptr);
 
- 	~CModListView();
 
- 	void loadScreenshots();
 
- 	void loadRepositories();
 
- 	void reload(const QString& modToSelect = QString());
 
- 	void disableModInfo();
 
- 	void selectMod(const QModelIndex & index);
 
- 	// First Launch View interface
 
- 	/// install mod by name
 
- 	void doInstallMod(const QString & modName);
 
- 	/// uninstall mod by name
 
- 	void doUninstallMod(const QString & modName);
 
- 	/// update mod by name
 
- 	void doUpdateMod(const QString & modName);
 
- 	/// open mod dictionary by name
 
- 	void openModDictionary(const QString & modName);
 
- 	/// returns true if mod is available in repository and can be installed
 
- 	bool isModAvailable(const QString & modName);
 
- 	/// finds translation mod for specified languages. Returns empty string on error
 
- 	QString getTranslationModName(const QString & language);
 
- 	/// finds all already imported Heroes Chronicles mods (if any)
 
- 	QStringList getInstalledChronicles();
 
- 	/// finds all mods that can be updated
 
- 	QStringList getUpdateableMods();
 
- 	void createNewPreset(const QString & presetName);
 
- 	void deletePreset(const QString & presetName);
 
- 	void activatePreset(const QString & presetName);
 
- 	void renamePreset(const QString & oldPresetName, const QString & newPresetName);
 
- 	QStringList getAllPresets() const;
 
- 	QString getActivePreset() const;
 
- 	JsonNode exportCurrentPreset() const;
 
- 	void importPreset(const JsonNode & data);
 
- 	/// returns true if mod is currently enabled
 
- 	bool isModEnabled(const QString & modName);
 
- 	/// returns true if mod is currently installed
 
- 	bool isModInstalled(const QString & modName);
 
- 	void downloadMod(const ModState & mod);
 
- 	void downloadFile(QString file, QUrl url, QString description, qint64 sizeBytes = 0);
 
- 	void installFiles(QStringList mods);
 
- public slots:
 
- 	void enableModByName(QString modName);
 
- 	void disableModByName(QString modName);
 
- private slots:
 
- 	void onCustomContextMenu(const QPoint &point);
 
- 	void dataChanged(const QModelIndex & topleft, const QModelIndex & bottomRight);
 
- 	void modSelected(const QModelIndex & current, const QModelIndex & previous);
 
- 	void downloadProgress(qint64 current, qint64 max);
 
- 	void extractionProgress(qint64 current, qint64 max);
 
- 	void downloadFinished(QStringList savedFiles, QStringList failedFiles, QStringList errors);
 
- 	void modelReset();
 
- 	void hideProgressBar();
 
- 	void on_lineEdit_textChanged(const QString & arg1);
 
- 	void on_comboBox_currentIndexChanged(int index);
 
- 	void on_enableButton_clicked();
 
- 	void on_disableButton_clicked();
 
- 	void on_updateButton_clicked();
 
- 	void on_uninstallButton_clicked();
 
- 	void on_installButton_clicked();
 
- 	void on_pushButton_clicked();
 
- 	void on_refreshButton_clicked();
 
- 	void on_allModsView_activated(const QModelIndex & index);
 
- 	void on_tabWidget_currentChanged(int index);
 
- 	void on_screenshotsList_clicked(const QModelIndex & index);
 
- 	void on_allModsView_doubleClicked(const QModelIndex &index);
 
- private:
 
- 	Ui::CModListView * ui;
 
- };
 
 
  |